Julia Set Computation and Rendering
Library to compute and render the Julia set boundary for complex-valued functions and render it to an image. Depending on the function, rendered images frequently have a fractal-like nature.
Features
- Supports multi-threaded CPU, OpenCL and Vulkan backends.
- Allows using custom complex-valued functions (not only boring quadratic ones).
- Supports customizable rendering params (e.g., the rendered area).
- Allows reusing the same compiled program with different rendering params, thus saving time on OpenCL / Vulkan shader compilation.
- Comes with a CLI example for a quickstart.
Usage
Add this to your Crate.toml
:
[]
= "0.1.0"
See the crate docs for the examples of usage.
Installing Backend Dependencies
Note that OpenCL and Vulkan backends require the corresponding platform installed
in the execution environment. You may consult platform docs or ocl
/ vulkano
crate
docs for possible installation options.
For quick testing, one may use POCL; it is an open source OpenCL implementation not tied to hardware (at the cost of being CPU-based, i.e., orders of magnitude slower than OpenCL implementations by GPU vendors). POCL may be installed from sources with the commands like these (showcased here for Ubuntu Bionic):
# Install utils for build
# Install OpenCL-related utils
# Install LLVM / Clang from the official APT repository
|
# Get POCL sources
# latest stable version
# Build POCL from the sources
&&
# Verify installation
# If successful, `clinfo` should display information about the POCL platform.
License
Licensed under the Apache-2.0 license.