Ollin

Simulation

  • Physics - import OllinPhysics gives you a World that you step each frame, so motion comes from simulation. It has a soft Verlet side (particles, springs, disk collisions) and a rigid side (bodies, colliders, joints). The rigid side is backed by Box2D.
  • Physics3D - rigid bodies inside the 3D scene. A World3D, backed by Jolt, holds Body3Ds that stack, tumble, and swing. It adds joints, mouse grabbing through the camera, and withBody drawing.
  • Swarm - the steering behaviors at GPU scale. Separation, alignment, cohesion, seek, flee, arrive, wander, and flow following are each a weight, and they run over the SpatialHash neighbor search.
  • Artificial life - three emergent-behavior systems on the GPU: ParticleLife (attraction/repulsion matrices), PPS (one turning rule that grows cells), and Physarum (slime-mold trail networks). The first two run over the SpatialHash neighbor search.
  • Evolution - populations that get better at something. Evolution breeds tens of thousands of GPU flights toward a target past obstacles, using tournament selection. Population breeds a handful of genomes that a person picks by eye.
  • Fluids & soft bodies - GPU particle dynamics in a walled box. ParticleFluid is smoothed-particle hydrodynamics that pours, splashes, and settles. SoftBodies makes shape-matched jelly blobs that squash and recover. You can grab both with the mouse.
  • Watercolor - wet paint on rough paper. This is the classic three-layer wash simulation, with real pigments (density, staining, granulation) and Kubelka-Munk optical glazing. Edge darkening, dry-brush, backruns, and wet-in-wet flow all come out of the physics.
  • Articulated & chaotic motion - CPU motion systems that you step each frame. IKChain makes inverse-kinematics tentacles and limbs, with two solvers plus a stiffness limit. DoublePendulum is the classic example of chaotic motion. NBody is quadtree gravity for orbits, galaxies, and collisions.
  • Crowds - Crowd, walkers that make room for each other, on the CPU. Each takes the velocity nearest its wish that keeps it clear of every neighbor for the next second, trusting the neighbor to do half. Obstacles and walls hold even in a jam, opposing streams sort into lanes, and isJammed marks the pressure.
  • Coupled oscillators - Kuramoto, a crowd of oscillators each running at its own pace and pulled toward the others, on the CPU. Below the critical coupling they drift apart; above it a locked group forms and the crowd falls into step. Read coherence to watch it happen, give it a range for a ring, lay it on a square or hex lattice or a graph of your own so patches lock and waves cross the field, and read localCoherence for where.

↑↓ move ↩ open