Files
2026-07-14 00:56:02 -07:00

31 lines
1.6 KiB
Markdown

# polypartiCL
Naive photon simulator using [SYCL](https://khronos.org/sycl/) and [raylib](https://raylib.com)
This project uses the [raylib-cpp](https://robloach.github.io/raylib-cpp) wrapper library and is provided in the /include directory.
raylib-cpp is licensed under an unmodified zlib/libpng license. A copy of this license is provided at /include/LICENSE.
cmake assumes icpx and the [Intel OneAPI](https://www.intel.com/content/www/us/en/developer/tools/oneapi/overview.html) environment is installed.
You'll need these even if you don't compile with cmake until SYCL gets native LLVM support.
All simulation code uses single-precision floating point arithmetic to ensure compatability with (integrated) graphics packages that do not support 64-bit floating point.
polypartiCL is licensed with the 3-clause BSD license.
## Todo
- Reduce corner escaping
- Ability limited by f32 precision
- Rewrite & optimize simulation code, store all points/velocites in one array and submit once
- Consider modelling each particle and all its relevant data points individually
- Submit each relevant data point by pointer offset, size of struct is irrelevant as long as it is constant, only necessary data will be submitted to kernel
- Add linear beams
- Add environment objects / multiple rooms per screen
- Add timed events
- Add MIDI support for real-time music visualization
- Add compile option for 64-bit floating point simulation
![Screenshot 1](screenshots/1.png)
![Screenshot 2](screenshots/2.png)
![Screenshot 3](screenshots/3.png)
![Screenshot 4](screenshots/4.png)