Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Developer documentation

Thank you for considering to contribute to OpenDefocus! In this documentation you will find (hopefully) all you need to get started.


Structure

The project has multiple crates defined at the crates directory, each of them serve their own purpose:

Crate NameDescription
opendefocusThe actual public library itself. The main crate.
opendefocus-datastructureDatastructure bindings to protobuf and implementations.
opendefocus-kernelKernel (no-std) source code. Runs on both GPU and CPU.
opendefocus-nukeNuke specific source code. Includes both C++ and Rust.
opendefocus-sharedCode that can be used by both the kernel and main opendefocus crate.
spirv-cli-buildWrapper around the SPIR-V from Rust-GPU to compile using nightly for opendefocus-kernel.

Located outside of opendefocus repository

Besides that, these crates have been located outside of this repository as they have a bigger scope than just convolution:

Crate NameDescription
circle-of-confusionCircle of confusion algorithm to calculate the actual circle of confusion from real world camera data or create a nice depth falloff based on selection
bokeh-creatorFilter kernel generation library
inpaintTelea inpainting algorithm in pure Rust