GitPedia

Sparkle

:sparkler: GPU particle simulation engine, inspired by Agni's Philosophy.

From tcoppex·Updated June 7, 2026·View on GitHub·

Spärkle is a particle engine running entirely on the GPU, inspired by the work of SquareEnix Advance Technology Division on *Agni's Philosophy*. The project is written primarily in C++, distributed under the MIT License license, first published in 2017. Key topics include: compute-shader, cpp14, glsl, gpu, opengl.

Spärkle

License: MIT
Build Status

screenshot

Spärkle is a particle engine running entirely on the GPU, inspired by the work of SquareEnix Advance Technology Division on Agni's Philosophy.

It is written in C++ 14 and OpenGL 4.4.

Features

  • Complete Compute Shader based GPU pipeline,
  • Bitonic Sorting for alpha-blending,
  • Curl Noise,
  • 3D Vector Field,
  • Structure of Arrays and Array of Structures data layout patterns.

For more images, check the gallery.

Quickstart

We will be using the command-line on Unix and Git Bash on Windows.

Dependencies

The following dependencies are pulled in as submodules.

To retrieve them, type the following command line in the project directory :

bash
git submodule init git submodule update

Build

We will first create a build directory then generate the CMake cache depending on your system.

bash
mkdir BUILDs && cd BUILDs

On Unix, using Makefile (replace $NUM_CPU by the number of core you want to use) :

bash
cmake .. -G Makefile -DCMAKE_BUILD_TYPE=Release make -j$NUM_CPU

On Windows, using MSVC 15 for x64:

bash
cmake .. -G "Visual Studio 15 2017 Win64" cmake --build . --target ALL_BUILD --config Release

Notes:

  1. Using CMake, the build configuration type (ie. Debug, Release) is set at Build Time with MSVC and at Cache Generation Time with Makefile.

  2. OpenGL extensions are generated automatically by a custom Python script. Alternatively GLEW can be used by specifying the option -DUSE_GLEW=ON to CMake. If something does not compile due to OpenGL functions, try to use GLEW.

Run

The binary can be found in the project ./bin/ directory:

bash
../bin/sparkle_demo

Dev Note:

  • The development being done on GNU/Linux, it is primarly optimized for it. The MS Windows version is at this moment quite slow.

References

License

Spärkle is released under the MIT license.

Contributors

Showing top 1 contributor by commit count.

View all contributors on GitHub →

This article is auto-generated from tcoppex/sparkle via the GitHub API.Last fetched: 6/27/2026