1 unstable release
0.1.0 | Jan 23, 2021 |
---|
#271 in Rendering
165 downloads per month
355KB
1.5K
SLoC
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
:
[dependencies]
julia-set = "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
apt-get install build-essential cmake pkg-config libhwloc-dev zlib1g-dev
# Install OpenCL-related utils
apt-get install ocl-icd-libopencl1 ocl-icd-dev ocl-icd-opencl-dev clinfo
# Install LLVM / Clang from the official APT repository
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
add-apt-repository 'deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-9 main'
apt-get update
apt-get install clang-9 libclang-9-dev llvm-9 llvm-9-dev
# Get POCL sources
export POCL_VER=1.5 # latest stable version
curl -sSL "https://github.com/pocl/pocl/archive/v$POCL_VER.tar.gz" > pocl-$POCL_VER.tar.gz
tar xf "pocl-$POCL_VER.tar.gz"
# Build POCL from the sources
cd pocl-$POCL_VER
mkdir build && cd build
cmake -DWITH_LLVM_CONFIG=/usr/bin/llvm-config-9 -DCMAKE_INSTALL_PREFIX=/usr ..
make
# Verify installation
clinfo
# If successful, `clinfo` should display information about the POCL platform.
License
Licensed under the Apache-2.0 license.
Dependencies
~3–11MB
~212K SLoC