Julia Set Computation and Rendering

Build Status License: Apache-2.0 rust 1.44.0+ required

Documentation: crate docs (master)

Fractal example

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

Usage

Add this to your Crate.toml:

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):

```bash

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 POCLVER=1.5 # latest stable version curl -sSL "https://github.com/pocl/pocl/archive/v$POCLVER.tar.gz" > pocl-$POCLVER.tar.gz tar xf "pocl-$POCLVER.tar.gz"

Build POCL from the sources

cd pocl-$POCLVER mkdir build && cd build cmake -DWITHLLVMCONFIG=/usr/bin/llvm-config-9 -DCMAKEINSTALL_PREFIX=/usr .. make

Verify installation

clinfo

If successful, clinfo should display information about the POCL platform.

```

License

Licensed under the Apache-2.0 license.