I like the name “Shuriken PLUS!” or “Particle Playground”…
Events for Unity’s CPU particle system, with little to no GC.
It’s so versatile, that in your insanity you could attach a VFX Graph particle system per-instance of Shuriken particle, and script that coupling however you wish, having full control over it. For example, you can transfer per-particle Shuriken properties to some VFX Graph.
You can even implement two-way rigidbody, per-particle physics, using Unity’s existing systems, and re-program the functionality of Shuriken from the ground-up, however you want it to work.
Shuriken effectively becomes a frontend visual editor and renderer for a fully programmable particle system backend, opening up its full potential with a robust event shell.
Some examples:
- Swarming/Flocking (maybe with sub-modules for behaviour layers)
- Axis Aligned Animation.
- Audio Reactivity.
- Spline (path-following)
- Instancing (per-particle object tracking)
- Rigidbody (rigidbody per-particle tracking)
- Plexus (connect particles in range of each other)
- Morphing (morph/interpolate between targets, morph TO target on geometry, etc…)
- SDF Force Fields (unity provides physics-based force fields, but not GPU-like shields that only push the particle to the edge of the field/sphere so long as it hits the SDF. This is possible now because we also have access to the particleOnEmit state. So we essentially ‘project’ a particle as it would intersect, making it appear as if it’s being repulsed and forced to the edge of the surface.
- Rewinding (possible, just not sure if easy or complex…)
- Inter-particle behaviours (plexus and swarming are already examples), how about per-particle repulsion as another simple use-case? Like per-particle force fields…
- Custom-load the custom vertrex streams module by writing to custom data from script, allowing you to pass per-particle data to particle shaders from scripts.
Give me more ideas.