This project aims to construct a set of tools for designing, simulating, previewing, and rendering offline particle systems. While it will not render particle systems in real time, it will utilize OpenCL - and thus, the parallel processing power of modern GPUs - to enable systems with enormous particle counts.
This software was designed and developed as my final project for RPI's CSCI-4530, Advanced Computer Graphics.
All software will be built and tested on Mac OS 10.6 and will likely not run on other platforms due to dependence on Apple-specific libraries. However, it may be possible to port Simulator and Renderer to other POSIX platforms which have OpenCL drivers with some effort.
All code is being released under the two-clause BSD license, which can be found in the toplevel LICENSE file.
- Mac OS 10.6+
- XCode Developer Tools (with OpenCL)
- SCons
- Doxygen
- popt
- NVidia GeForce 8600+
- ATI Radeon 4850+
- (PA) libparticles - various global data structures
- (CU) libcurve - manipulation of and interpolation along b-splines
- (CO) libcomputer - generic, reusable OpenCL wrappers
- (SM) libsimulator - physical simulation of particle interactions
- (RE) librenderer - cinematic rendering of particle simulations
- (IP) libinterpolator - widgets for editing curves and curve sets
- (PV) libpreviewer - widgets for previewing simulations
- Interpolator - curve editor for animating various properties of systems
- Simulator - uses OpenCL to simulate and output the motion of particles
The on-disk file format will be a ZIP with various parts:
-
Master simulation file; describes emitters, forces, etc., and links properties of objects to curves files
-
Curves files; each is linked in the master simulation file to a particular object in the simulation, and contains a set of named curves which map to properties of said object