31 lines
1.6 KiB
Markdown
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
|
|
|
|

|
|

|
|

|
|

|