Skip to content

Latest commit

 

History

41 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Julia Set

Overview

A simple Julia Set implementation written in x86_64 assembly and C. It uses AVX2 instruction set to accelerate computations by processing four double-precision pixels simultaneously in 256-bit vectors. Moreover, a custom threadpool is used to utilize all of the CPU's power. The generated pixel buffer is rendered using SDL3. There is no GPU acceleration - computations are performed only on CPU. The project was developed on Linux so it is recommended to test it on the same environment.

Demo

demo1.mp4
demo2.mp4

Requirements

Required tools:

Installation

Clone the repo with submodules:

git clone --recursive git@github.com:xFidle/julia-set.git

Build executable:

mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make   

Run executable:

./src/julia-set

Usage

To interact with program use controls listed below:

Key Action
H/J/K/L or arrows Change fractal shape (real/imaginary components)
W/S/A/D Change camera's position
Z/X Zoom in/out
R Reset to default view
ESC Quit

About

Julia Set implementation written in x86_64 assembly and C using AVX2 instruction set and custom threadpool.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages