Simulation Highlights
Quantum Dots nanotech
The Brus equation predicts how the bandgap — and therefore the emission colour — of a semiconductor nanocrystal widens as the particle shrinks below the exciton Bohr radius. Drag the slider from 1 nm to 10 nm and watch the dot glow shift from deep blue to infrared.
Molecular Self-Assembly nanotech
Amphiphilic molecules orient themselves at an oil–water interface driven purely by entropy and hydrophobic exclusion. The packing parameter p = v/(a₀·l₁) determines whether the system forms micelles, vesicles, or a planar bilayer — the geometry of life.
Q-Learning Agent ai-ml
A tabular Q-learning agent navigates a grid world, updating its action-value table via the Bellman equation at every step. The ε-greedy policy starts at pure exploration and anneals toward exploitation. Watch the agent go from random walks to optimal shortest paths in a few hundred episodes.
Decision Tree (CART) ai-ml
Builds a binary classification tree by recursive Gini-impurity splits. Control max depth to watch the boundary transition from a single threshold to a piecewise staircase that memorises every training point. Information gain (entropy) mode also available.
Inverse Kinematics (FABRIK) robotics
The Forward And Backward Reaching Inverse Kinematics algorithm resolves a chain of rigid links to reach a dragged target, iterating forward from root and backward from tip until the end-effector converges. Works for chains of 2–12 links, with joint angle limits and an obstacle-avoidance toggle.
Bicycle Aerodynamics sports
Power demand scales as P = ½ρv³CₜA. Adjust rider position (upright, drop, TT tuck) and speed to see how aerodynamic drag dominates at race pace. A drafting mode simulates following a wheel at various gaps: a 2 m gap reduces CdA by roughly 27% for the follower.
Soccer Kick & Magnus Effect sports
Spin a ball around its axis and the Magnus force curves its trajectory sideways. Set backspin, topspin, or sidespin; pick initial speed and elevation; and watch the ball swerve through 3D space, including a simulated wall of defenders at 9.15 m.
Nuclear Reactor Criticality space
The six-factor formula k∞ = η ε p f determines whether a thermal reactor is sub-, critical, or supercritical. Adjust enrichment, moderator-to-fuel ratio, and control-rod insertion to explore delayed-neutron stabilisation and the prompt criticality boundary.
Ray Marching & SDFs graphics
Sphere-traces signed-distance-field primitives (sphere, box, torus, capsule) using smooth-min blending in a GLSL fragment shader. Phong shading with normal estimation by central differences. Compose scenes with up to four objects and tune the blending factor interactively.
Spirograph & Epitrochoids graphics
Hypo- and epitrochoids generated by a point on a rolling circle. Adjust the ratio of radii and the pen offset to explore the full zoo: deltoids, astroid, rhodonea rose curves, limacons, and Lissajous-adjacent patterns. Exports as SVG.
Category Coverage Improvements
Wave 98 was explicitly planned to lift the thinnest categories. Before and after the wave:
Three optical-illusion simulations join the library: a Necker-cube ambiguous-figure toggle, the Rotating Snakes illusion (driven by luminance edge gradients), and an Ebbinghaus-Ponzo context-size comparison. These sit at the boundary of visual neuroscience and demonstrate how the visual system uses prior knowledge to interpret ambiguous images — a natural companion to the Gestalt grouping simulation added in the previous batch.
Physics Covered: A Closer Look at Four Sims
Quantum Dots — Brus Equation
A bulk semiconductor has a fixed bandgap determined by its crystal chemistry. When you shrink a crystal below the exciton Bohr radius — around 4–10 nm for common II–VI and III–V materials — quantum confinement raises the effective bandgap. The Brus equation gives the first approximation, treating the electron and hole as particles in a spherical box and adding a Coulomb correction term.
E_gap(r) = E_bulk + (h^2 / 8r^2)(1/m_e* + 1/m_h*) - 1.8e^2 / (4*pi*eps*eps0*r)
r : nanocrystal radius
m_e* : effective electron mass (material-dependent fraction of m_e)
m_h* : effective hole mass
eps : relative permittivity of the semiconductor
Emission wavelength: lambda = hc / E_gap(r)
Q-Learning — Bellman Update
Q-learning is a model-free reinforcement learning algorithm that estimates the expected cumulative reward for each (state, action) pair without knowing the environment’s transition probabilities. After each transition the agent updates its Q-table toward the Bellman target — the immediate reward plus the discounted best future value. With enough exploration and a decaying learning rate the Q-values converge to Q*, the optimal policy.
Q(s, a) += alpha * [r + gamma * max_a' Q(s', a') - Q(s, a)]
alpha : learning rate (0 < alpha <= 1)
gamma : discount factor (0 < gamma < 1)
r : reward received after action a in state s
s' : next state
epsilon-greedy: with prob eps choose random action, else argmax Q(s, *)
Bicycle Aerodynamics — Power and Drafting
Aerodynamic drag is the dominant resistive force above about 25 km/h. Because drag force scales with v² and power is force times velocity, power demand climbs as v³. Halving your CdA (drag area) halves the aerodynamic power at constant speed — the engineering logic behind TT bikes, deep-section wheels, and skin-suit fabrics. Drafting behind another rider shields you from the incoming flow, cutting your effective frontal area by 20–30% at a 2 m gap.
F_drag = 0.5 * rho * v^2 * CdA
P_aero = F_drag * v = 0.5 * rho * v^3 * CdA
Total: P = P_aero + P_roll + P_gravity
P_roll = Crr * m * g * v
Drafting: CdA_follower ~ 0.73 * CdA_solo (at 2 m gap, ~15 km/h wind)
FABRIK Inverse Kinematics
Forward And Backward Reaching Inverse Kinematics solves the chain position problem iteratively, without trigonometry or Jacobian matrix inversion. The forward pass pulls each joint toward the next in the chain; the backward pass re-anchors the root and pushes joints back out. Two passes per iteration; the algorithm converges in typically 3–10 iterations to within a fraction of a millimetre of the target. Joint angle constraints (cones around a rest direction) are applied per joint at the end of each pass.
Forward pass: for i = n downto 1
p[i-1] = p[i] + normalize(p[i-1] - p[i]) * d[i]
Backward pass: p[0] = root; for i = 1 to n
p[i] = p[i-1] + normalize(p[i] - p[i-1]) * d[i]
Repeat until |p[n] - target| < tolerance
Constraint: clamp angle between consecutive segments
Infrastructure Updates
Analytics and performance budgets
We introduced a lightweight performance budget check into the CI pipeline: simulations that report more than 16 ms per frame on a throttled 4× CPU (simulated in Lighthouse) trigger a warning in the pull-request summary. Wave 98 simulations all pass. The check caught one issue with the ray-marching sim — an unconditional shadow-march that doubled GPU time on some mobile GPUs — which was fixed by making the shadow pass opt-in.
Service worker and offline coverage
The service worker pre-cache list now covers all 711+ simulation entry points and their JS bundles. First-visit caching is background-only so it does not delay the initial page load. Returning visitors can open any simulation they’ve visited before without a network connection, which matters for tablet-based classroom use.
Accessibility audit
All 22 Wave 98 simulations passed an automated axe-core audit before merge. Key patterns enforced: every canvas has an aria-label describing the current simulation state; interactive range sliders have visible labels and value readouts; and keyboard focus is trapped within the simulation overlay when the info panel is open, preventing focus from escaping to the background page.
Up Next
Wave 99 will focus on the chemistry and materials science columns, which have thin coverage of polymer physics and colloid science. We also plan to revisit the biology category with three new cell-biology sims: membrane electrodynamics, cytoskeleton tension networks, and a motor-protein stepping model. Browse all posts in the blog archive or jump to the companion spotlights for a deeper look at the physics behind these simulations.