April 17, 2026
Collider System Planning
Worked on planning and refining the collision detection system, improving how particles interact with solid surfaces. Focused on flat plane colliders and the underlying math for detecting surface contacts accurately. Added automated tests to validate the new collision behavior and catch regressions early.
April 16, 2026
Cloth Simulation & Release Prep
Explored a new simulation scenario: a cloth draping over a sphere, showcasing how particle constraints can realistically model flexible fabric. This type of scene demonstrates the power of the constraint system for soft-body effects. Also set up a release notes template to make future version documentation faster and more consistent.
March 26, 2026
Constraint Preset Node
A new Constraint Preset node was added to the particle system, giving artists a convenient way to apply predefined constraint configurations without manually setting up every parameter. The node exposes a curated set of commonly-used constraint setups, making it faster to iterate on simulations with physical constraints. The existing constraint nodes were updated to integrate smoothly with the new preset system.
March 24, 2026
Constraint Recursion Bug Fixed
A bug causing infinite recursion in the constraint evaluation system was identified and resolved. The fix ensures the solver correctly exits evaluation loops without getting stuck, improving stability when using complex constraint chains. A minor additional fix was also applied for edge cases in the node system.
March 22, 2026
GPU Infrastructure Refactor and Code Cleanup
The GPU binding resolver was significantly streamlined, reducing its codebase by over a third while keeping all features intact. All simulation modules were updated to use StandardLayouts, making the binding system more consistent and maintainable across the board. Minor input handling fixes were applied to several nodes to improve reliability in the Blender interface. Documentation was also updated to reflect these structural changes.
March 21, 2026
Event Spawner System Introduced
A brand-new Event Spawner node was built from scratch, allowing particles to spawn new particles when specific conditions are met. The system runs entirely on the GPU through dedicated compute shaders for event detection and spawning. Collision-based spawning was added the same day, letting the simulation react to mesh or primitive hits in real time. Particle configuration properties were also extended with a new Particle Properties node for more granular per-emitter control.
March 20, 2026
Hook Solver Complete — All Tests Green
The hook-solver branch was merged into the main codebase: springs and hook constraints are now fully integrated, tested, and working. All automated tests pass. A set of new example scenes was added — vertical chains, suspended tori, rigid cubes, large ground simulations — showcasing what the constraint system can do. Further determinism improvements were also applied, ensuring simulations produce identical results every run.
March 19, 2026
Pin Constraints Working
Pin constraints — which allow particles to be locked to a fixed point in space, like nailing one end of a chain to a wall — are now fully functional and validated by tests. This is a key building block for scenes like hanging ropes, suspended objects, and anchored structures.
March 18, 2026
GPU Readback Fixes
Fixed an issue with how simulation results are transferred back from the graphics card to the CPU for inspection and validation. With that corrected, nearly all automated tests were passing again, bringing the codebase close to a fully stable state.
March 17, 2026
Euler Integrator Simplified
The motion integration system — the part that moves each particle forward in time — was significantly simplified and cleaned up, cutting the code roughly in half while making it easier to maintain. A small dedicated integrator was extracted as its own component, and all automated tests came back green, confirming the refactor did not break anything.
March 16, 2026
Realigning Physics with Molecular Dynamics
The spring and hook constraint formulas were reworked to match established molecular dynamics calculations, ensuring the simulation behaves in a physically accurate way. The older position-based solver was cleared out to make room for this cleaner approach, and the GPU constraint shader received a significant overhaul as a result.
March 15, 2026
Constraint Scenes Refinement
Continued refining the test scenes for the constraint system — tweaking how suspended objects, stiff links, and large particle groups behave. Small adjustments were also made to how the GPU integration communicates results back, laying the groundwork for more accurate physics calculations in the following days.
March 14, 2026
Deterministic Simulations
Implemented a neighbor sorting system to ensure that simulations produce identical results every time they run. This is critical for reproducibility and debugging. Also diagnosed and resolved a conflict between the grab interaction and spring forces that was causing instability during user interaction.
March 13, 2026
Stabilisation & Viewer Improvements
Fixed issues in the fluid simulation, gravity, and vorticity systems. Enhanced the standalone viewer with better rendering capabilities. Created example scenes to demonstrate different constraint behaviors like ground contact, rigid body cubes, and stiffness comparison. Added extensive constraint validation tests.
March 12, 2026
Comprehensive Testing
Massive testing effort across the entire simulation engine. Added reliable tests for combustion, fluid dynamics, noise generation, reaction-diffusion, and vorticity. Improved the test framework itself to produce more consistent and meaningful validation results. Fixed several bugs discovered during testing across multiple simulation modules.
March 11, 2026
Debugging & Diagnostics
Investigated and documented a constraint collapse issue where particles would unexpectedly converge to a single point. Improved the GPU debugging tools to make it easier to diagnose simulation problems in real time.
March 10, 2026
Constraint Solver Rewrite
Rewrote the core constraint solver with a new GPU pipeline architecture. This new approach splits the computation into prediction, conversion, and iteration stages for better stability and performance. Also cleaned up a significant amount of legacy code that was no longer needed.
March 9, 2026
Constraint System Refinement
Refined constraint grabbing, position-based dynamics, and visual relationship links. Improved debugging integration for constraint graph topology.
March 8, 2026
VOX Spatial Indexing System
Replaced generic neighbor-search with domain-specific VOX (voxel-based spatial indexing) system with O(1) hash lookups and seamless collision integration.
January 22, 2026
Filter Canvas & Collision Optimization
Achieved 0.013ms filter execution by removing GPU-to-CPU mask transfer. Optimized particle-to-particle collision with spatial acceleration for millions of interactions per frame.
January 21, 2026
No-CPU Particles Architecture
Completed central buffer management in gpu_device. Particles live exclusively in GPU VRAM with on-demand CPU access, achieving zero-copy architecture.
December 28, 2025
Monorepo Architecture
Merged Rust simulation engine into main project structure. Established workspace with neighbor-vox, bake, and gpu_particle crates for shared types and dependencies.
November 21, 2025
GPU-Only Filtering & Shaders
Migrated entire filtering system to GPU shaders in WGSL. Achieved sub-millisecond filter execution with zero CPU synchronization.
November 18, 2025
Full GPU-Only Pipeline
Eliminated all CPU particle data storage. Forced GPU-exclusive compute with CSR (Compressed Sparse Row) format for neighbor results. Major breaking change for massive performance gains.
November 16, 2025
Continuous Collision Detection (CCD)
Implemented CCD for high-speed particle impacts with real-world gravity validation. Solved the bullet-through-paper problem with swept collision detection.
August 29, 2025
Sandbox & Mock Blender Environment
Created headless sandbox framework with complete mock Blender API for testing without GUI, enabling fast iteration and CI/CD integration.
August 28, 2025
GPU Neighbor Search & KDTree
Migrated spatial queries to GPU using Z-Order (Morton) curves for neighbor finding. Designed transparent KDTree-compatible API for real-time multi-million particle simulation.
November 1, 2024
Custom Attributes & Metadata System
Introduced CustomAttributeNode allowing user-defined per-particle attributes and dynamic properties, integrated into baking and preview systems.
October 5, 2024
Vertex & Face Corner Attributes
Extended object scanning to capture vertex colors and face corner data. Added random particle spawning from mesh vertices for refined emission patterns.
March 5, 2024
Tracer & Velocity Tracking
Implemented particle history tracking (tracer) for velocity-colored visualization and path animation support. Built for motion visualization and debugging.
November 28, 2023
Filter Stacking & Multi-Filter Support
Extended filter system to support multiple sequential filters on single node with unified interface, enabling complex particle transformations through stacked operations.
November 22, 2023
Constraint System & Emitter Overhaul
Overhauled emitter system with deterministic spawning and mesh deformation support. Introduced constraint node framework for verlet integration and particle linking.
November 16, 2023
Fluid Dynamics & SPH
Implemented SPH (Smoothed Particle Hydrodynamics) fluid system with Gaussian kernels, curl noise, turbulence, and vorticity for complete fluid simulation.
July 17, 2023
Playback & Cache Improvements
Enhanced simulation playback with frame-accurate scrubbing, object tracking in node trees, and improved cache management with performance profiling.
July 5, 2023
Particle Attributes: Rotation & Morphing
Added particle rotation tracking and morphing (shape interpolation) as first-class attributes, integrated into the node graph for advanced animation.
June 29, 2023
Single Loop Optimization & Threading
Refactored execution to single update loop with Arc/RwLock synchronization. Consolidated multi-threaded particle updates for improved stability and determinism.
May 16, 2023
Baking & Playback System
Developed frame-based baking engine to pre-compute particle simulations. Added cache invalidation, UNDO/REDO support, and timeline scrubbing for Blender workflow.
January 14, 2023
PyO3 Bridge & Blender Integration
Implemented Python FFI layer using PyO3 for Blender addon communication. Enabled bidirectional data exchange between Rust particle engine and Blender 3.x.
January 9, 2023
Node-Based Graph System
Built foundation for declarative, graph-based particle system workflows with nodes for emitters, forces, filters, and lifecycle management.
January 3, 2023
Boid Simulation & Force Queue
Implemented boid flocking behavior with collision avoidance and path following. Refactored force application to centralized queue pattern for extensibility.
December 27, 2022
Initial Particle System Framework
Established foundational particle system architecture with basic physics, noise-driven movement, and Bevy GL visualization pipeline.