Compare commits

...

4 Commits

Author SHA1 Message Date
alardner f2c7c0d882 make shared ptrs device ptrs 2026-07-17 16:45:52 -07:00
alardner c0a0d101eb backup 2026-07-16 13:38:08 -07:00
alardner 70dbf1a649 fix gitignore 2026-07-14 01:37:24 -07:00
alardner 78fa51384a update readme 2026-07-14 00:56:02 -07:00
10 changed files with 30 additions and 22 deletions
-1
View File
@@ -42,4 +42,3 @@ build
debug debug
.cache .cache
tmp tmp
screenshot*
+5 -3
View File
@@ -21,8 +21,10 @@ polypartiCL is licensed with the 3-clause BSD license.
- Add linear beams - Add linear beams
- Add environment objects / multiple rooms per screen - Add environment objects / multiple rooms per screen
- Add timed events - Add timed events
- Add MIDI support for real-time music visualization
- Add compile option for 64-bit floating point simulation - Add compile option for 64-bit floating point simulation
![Screenshot 1](https://alexlardner.com/img/1.png) ![Screenshot 1](screenshots/1.png)
![Screenshot 2](https://alexlardner.com/img/2.png) ![Screenshot 2](screenshots/2.png)
![Screenshot 3](https://alexlardner.com/img/3.png) ![Screenshot 3](screenshots/3.png)
![Screenshot 4](screenshots/4.png)
+8
View File
@@ -0,0 +1,8 @@
Center Delay
count velocity x y theta_i theta_f color start end decayrate
===================================================
s
20000 70 0.5 0.5 0 360 red 1 0 0
20000 70 0.5 0.5 0 360 green 3.30769 0 0
20000 70 0.5 0.5 0 360 blue 5.61538 0 0
20000 70 0.5 0.5 0 360 white 7.92308 0 0
+4 -3
View File
@@ -2,6 +2,7 @@ Center Delay
count velocity x y theta_i theta_f color start end decayrate count velocity x y theta_i theta_f color start end decayrate
=================================================== ===================================================
s s
16000 79 0.5 0.5 0 360 cyan 1 0 0 10000 40 0.5 0.5 0 360 orange 1 0 0
16000 79 0.5 0.5 0 360 magenta 2.075 0 0 10000 40 0.5 0.5 0 360 cyan 3.30769 0 0
16000 79 0.5 0.5 0 360 yellow 4.931 0 0 10000 40 0.5 0.5 0 360 violet 5.61538 0 0
10000 40 0.5 0.5 0 360 green 7.92308 0 0
+7 -9
View File
@@ -1,11 +1,9 @@
Big Hexagon (fixed 1080) Big Diamond (relative)
x y x y
================== ==================
f r
960.0 1.303 0.5 0.0
1426.525 270.652 0.78125 0.5
1426.525 809.348 0.5 1.0
960.0 1078.697 0.21875 0.5
493.475 809.348 0.5 0.0
493.475 270.652
960.0 1.303
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 233 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 758 KiB

+6 -6
View File
@@ -30,9 +30,9 @@ struct Polyparti::ParticleField::ColCode {
//Pointers to malloc on GPU VRAM for calculations. malloc_shared pointers are entry/exit //Pointers to malloc on GPU VRAM for calculations. malloc_shared pointers are entry/exit
//point for data in CPU RAM //point for data in CPU RAM
float *v_ptr = malloc_shared<float>(2 * len_points, q); float *v_ptr = malloc_device<float>(2 * len_points, q);
float *d_ptr = malloc_shared<float>(2 * len_points, q); float *d_ptr = malloc_device<float>(2 * len_points, q);
float *c_ptr = malloc_shared<float>(2 * len_points, q); float *c_ptr = malloc_device<float>(2 * len_points, q);
float *ray_ptr = malloc_device<float>(2 * len_points, q); float *ray_ptr = malloc_device<float>(2 * len_points, q);
float *det_ptr = malloc_device<float>(len_points, q); float *det_ptr = malloc_device<float>(len_points, q);
float *bestA_ptr = malloc_device<float>(2 * len_points, q); float *bestA_ptr = malloc_device<float>(2 * len_points, q);
@@ -170,9 +170,9 @@ struct Polyparti::ParticleField::ColCode {
void moveParticles() { void moveParticles() {
queue& q = q_shared(); queue& q = q_shared();
int len = positions.size(); int len = positions.size();
float *v_ptr = malloc_shared<float>(2 * len, q); float *v_ptr = malloc_device<float>(2 * len, q);
float *p_ptr = malloc_shared<float>(2 * len, q); float *p_ptr = malloc_device<float>(2 * len, q);
float *t_ptr = malloc_shared<float>(1, q); float *t_ptr = malloc_device<float>(1, q);
q.submit([&](handler& h) { q.submit([&](handler& h) {
h.memcpy(p_ptr, &positions[0], len * 2 * sizeof(float)); h.memcpy(p_ptr, &positions[0], len * 2 * sizeof(float));