Phy-Tea is a learning resource site for physics, chemistry, biology, Earth and space science, and math.
Try the simulations, videos and learning games made by a physics teacher, right in your browser.
SimulationNewOct 31Airbag Design Lab
At the design bench of a crash test hall, weigh sodium azide (NaN₃) and count it in moles, find the moles of nitrogen from the coefficients of 2NaN₃ → 2Na + 3N₂, and get the airbag's volume and pressure from the ideal gas law. After watching an inflated bag's volume follow absolute temperature in a climate chamber, find the mass that catches the dummy safely in a crash test.
Made with three.js
SimulationNewOct 31Blood Sugar Control Room
Glucose, insulin and glucagon particles flow through the large blood vessels of a body built from public anatomy models (HuBMAP HRA, BodyParts3D): liver, pancreas, small intestine, muscle and kidneys, with the hypothalamus glowing in a zoom window. Eat, fast or run and let time flow to see how pancreatic hormones and autonomic nerves change glycogen storage and breakdown in the liver to keep blood glucose steady by negative feedback, then find out why diabetes develops in a body that makes almost no insulin or where insulin works poorly.
Made with three.js
SimulationNewOct 31Adiabatic Cloud Factory
Drag an air parcel up a 3D mountain model to see it cool by adiabatic expansion and form a cloud where it reaches its dew point. Measure the dry and moist adiabatic lapse rates and the lifting condensation level on a height and temperature graph, see whether a released parcel comes back or rises by itself for different surrounding lapse rates (atmospheric stability), and find why air that rains on the windward side becomes a warm, dry foehn wind.
Made with three.js
GameNewOct 31Logic Detective: The Secret of the Stopped Clock Tower
A 25 to 30 minute story game: as an apprentice detective on festival morning, check the villagers' shoes and keys, place them in a chalk Venn diagram on the plaza, and pick out who stopped the clock tower using converses, contrapositives, necessary and sufficient conditions, and proofs.
Made with RPG Maker MZ
SimulationNewOct 31Sugar Water Lab
Look closely at the surface in a closed box to see that dissolved sugar means fewer water molecules leave, so the vapor pressure drops, then use a temperature sensor to find the boiling point elevation and freezing point depression of sugar water in terms of molality. In a U-tube with a semipermeable membrane, measure osmosis (water crossing both ways, but more toward the stronger side) and osmotic pressure, watch red blood cells burst and plant cells plasmolyze, and explain salted cabbage, calcium chloride on winter roads and the concentration of IV fluid.
Made with three.js
SimulationNewOct 31Cell Dissection Lab
Turn a pancreatic acinar cell and a leaf cell to find their organelles, then grind cells and raise the centrifuge speed step by step to sink nuclei, mitochondria, then ER fragments and ribosomes (cell fractionation). Give a 3 minute pulse of radioactive amino acids and follow the label from the rough ER through the Golgi body and secretory vesicles to the outside of the cell, with a bar for each organelle (autoradiography).
Made with three.js
SimulationNewOct 31Deep Ocean Current Tank
Pour water of chosen temperature and salinity into a tank holding a slice of the ocean from Antarctica to the Greenland side, and read on the temperature–salinity (T–S) diagram how both set the density of seawater. Cool polar water and freeze sea ice to make Antarctic Bottom Water, survey three water masses at the equator, follow dye through hundreds of years of deep circulation, and see fresh water from melting ice weaken the sinking flow.
Made with three.js
SimulationNewOct 31Titration Curve Lab
Turn the stopcock of a burette on the lab bench to add NaOH drop by drop and draw the pH curve. See, through the counts of HA, A⁻, H₃O⁺ and OH⁻ in a particle window and concentration bars, why 0.10 M hydrochloric and acetic acid give different curves, why pH equals pKa at half-equivalence and why a weak acid's equivalence point is basic by salt hydrolysis, then choose an indicator and judge the strength and concentration of an unknown acid.
Made with three.js
SimulationNewOct 31Tracing DNA with Isotopes
Label a phage's protein coat with ³⁵S and its DNA with ³²P, infect E. coli, then run the blender and centrifuge to find where the radioactivity ends up (supernatant, pellet, new phages) and show that DNA is the genetic material. Then move E. coli from ¹⁵N to ¹⁴N medium and compare the DNA bands in the tube each generation with the bands predicted by the conservative, semiconservative and dispersive models.
Made with three.js
SimulationNewOct 31Tsunami Wave Tank
In a 3D tank that cuts out a slice of sea, change wavelength and depth to see deep-water waves speed up with wavelength and shallow-water waves with depth, along with the circular and elliptical motion of water particles. Trigger undersea earthquakes, landslides and storm surges to compare causes, watch a tsunami cross an ocean for hours and slow down and grow at the coast, then decide where a coastal town should evacuate.
Made with three.js
SimulationNewOct 31Lac Operon Switch
Find the regulatory gene, promoter, operator and structural genes on 3D DNA inside an E. coli cell, then add lactose to the medium and run cell time: the repressor leaves the operator, RNA polymerase passes, β-galactosidase builds up, and the switch turns off again once the lactose is used up. Predict what mutants with a broken regulatory gene or operator will do, and compare with gene regulation in a eukaryotic cell.
Made with three.js
SimulationNewOct 31Exoplanet Hunt
Use the depth and spacing of the dips a transiting planet makes in the light curve to find its size and orbital period, and the radial velocity of the star's absorption lines swinging between blueshift and redshift to find its mass. Change the star's surface temperature to watch the habitable zone move, then fit a model to observed data to judge whether liquid water could exist on the planet.
Made with three.js
SimulationNewOct 31Galaxy Rotation Curve
Measure the wavelength shifts of starlight and 21 cm radio waves with a probe in a 3D spiral galaxy you can turn, and draw its rotation curve. The curve expected from the visible stars and gas falls off far out while the observed curve stays flat, so you grow a dark matter halo until the two curves match.
Made with three.js
SimulationUpdatedOct 31Running the Town's Power Grid
In a 3D town with nuclear, coal, hydro, solar and wind plants, set plant output and transmission voltage through one day to keep the lights on. Trace energy conversion and efficiency inside a coal plant, see I = P/V and the I²R loss on the line, and test turns ratios and why a transformer needs AC.
Made with three.js
SimulationUpdatedOct 31From DNA to Protein: Transcription and Translation
Pick a gene on a 3D double helix and follow transcription (template strand → mRNA), export through a nuclear pore, and translation (codon → tRNA → polypeptide) step by step. Change one template base to see how codons and amino acids change.
Made with three.js
SimulationUpdatedOct 31The Life of a Star and the H-R Diagram
Choose an initial mass and press play: as the star ages, the 3D star changes size and color while its point on the H-R diagram moves from the pre-main sequence across the zero-age main sequence to the giant or supergiant stage and on to a white dwarf, neutron star or black hole, returning matter to space. A cross-section shows how the inside depends on mass and stage, and aging a star cluster lets you read its age from the turnoff on the C-M diagram.
Made with three.js
SimulationUpdatedOct 31Speed Camera Racer
Drive a 10 km average speed check on a straight highway with the speed up and slow down buttons while the position-time and velocity-time graphs are drawn. Use the mean value theorem (a tangent parallel to the line through two points) to see why slowing down only at the cameras still gets a ticket, then paint the area under the velocity graph to find that it equals the distance driven.
Made with three.js
SimulationUpdatedOct 31School Zone Stopping Distance
From the driver's seat, drive a test car past a school in 3D and press the brake yourself when a cardboard test dummy darts out from behind a parked car, measuring your own reaction time. See how speed, road surface, vehicle mass and phone use change the reaction and braking distances through the area under the v–t graph and a high-speed multiflash photo analysis of uniformly accelerated motion.
Made with three.js
SimulationUpdatedOct 31Adrift in Space
An astronaut with a snapped tether throws tools to get back to the station. Measure the forces both objects feel during a throw on a force-time graph and the momentum afterward with arrows and bars to see action and reaction and conservation of momentum, then extend it to catching with a crewmate and a fire-extinguisher jet that works like a rocket.
Made with three.js
SimulationUpdatedOct 31Wheel and Shadow: Simple Harmonic Motion
In a dark lab, parallel light casts the handle of a turning wheel onto the wall. Match a mass on a spring to the bobbing shadow to find ω = √(k/m), check velocity, acceleration and a = −ω²x, then use tangent slopes and a radius-1 circle to see why (sin θ)′ = cos θ and how the chain rule works.
Made with three.js
SimulationUpdatedOct 31Ultrasound Imaging: Drawing the Body with Echoes
A five-stage simulation: see reflection, transmission and phase change at a boundary on a chain of springs, then put a probe on a body phantom, measure depth from echo times (A-mode) and stack lines into a cross-section image (B-mode). It also covers the effects of gel and frequency, and non-destructive testing for a crack inside a rail.
Made with three.js
SimulationUpdatedOct 31Hammer Throw
Whirl a 7.26 kg hammer in a stadium throwing circle and let it go. Predict which way it flies at the moment of release, see how the motion changes when the angle between the wire tension and the velocity is 90°, smaller or larger, then throw past 80 m inside the sector and connect the direction of force with the direction of motion through a flying hammer and a cart on a curve.
Made with three.js
GameUpdatedOct 31Trebuchet Siege: projectile motion and mechanical energy
A Godot game in which you are a trebuchet engineer: set the angle and speed, predict where the stone will land (or how high it will go) before firing, then check. Faint stones every 0.25 s, horizontal and vertical velocity arrows and kinetic/potential energy bars reveal projectile motion, from a high wall and a deep valley to a practice castle that collapses under a physics engine.
Made with Godot
SimulationNewOct 29Molecule Piston
Watch individual molecules in a cylinder to see that pressure is molecules hitting the walls and temperature is their average kinetic energy. Count, collision by collision, how molecules speed up off an approaching piston in adiabatic compression, gain kinetic energy from a hot plate as heat, and do work pushing the piston, so that Q = ΔU + W appears, then explain irreversible change with free expansion and counting arrangements.
Made with three.js
SimulationNewOct 29P–V Pathfinder
Mark states as points on a P–V graph and read their temperature from isotherms, then drag isochoric, isobaric, isothermal and adiabatic pieces together to see Q, ΔU and W in a table and as areas. Join the same two states by different paths to see that work and heat depend on the path, close cycles to tell a heat engine from a refrigerator, and calculate in the calculation lab.
Made with HTML · JavaScript
SimulationNewOct 28Earthquake Big Data and an Alarm
Load Korea's earthquake list since 1978 downloaded from the KMA Weather Nuri site, mark the blanks, and tell apart the step made by digital observation from 1999 and the spike made by the 2016 aftershocks. Write a rule for maximum intensity III or more, compare it with a decision tree tested on records from 2023 on, then send past earthquakes through an alarm on a virtual board and count misses and false alarms.
Made with HTML · JavaScript
GameFossil Detective: Reading Earth's History in Rock Layers
A 10–15 minute story game: survey a collapsed sea cliff, order its events by superposition, intrusion and unconformity, and read geologic eras and mass extinctions from fossils.
Made with RPG Maker MZ
SimulationInterference & Diffraction Bench
Explain the colored bands and black top of a standing soap film with two reflected waves and the phase flip on reflection, measure Δx = Lλ/d with a laser double slit and see that energy is conserved even when light plus light makes darkness. Explore single-slit diffraction, gratings and resolution qualitatively, and try precision technologies that use interference: anti-reflection coatings, CD/DVD track spacing and holograms.
Made with three.js
GameMoth Hunt: a natural selection simulation
A Godot game where you are a bird hunting moths on a tree trunk for 20 seconds. The moths vary in wing darkness, and those that match the bark are genuinely hard to find; survivors leave offspring and the generations roll on. Across three acts (lichen forest, sooty forest, clean air again), predict and then see how the population's color distribution changes.
Made with Godot
SimulationMolecular Shapes & Electron-Pair Repulsion
Add and remove electron-pair directions (bonded atoms + lone pairs) on a central atom and watch them push each other into place in 3D, shrinking the bond angle from 109.5° to 107° to 104.5°. Sum the bond dipoles to decide whether a molecule is polar.
Made with three.js
SimulationVirtual Spectroscope
A five-stage simulation: switch on discharge tubes in a dark lab, read line wavelengths with a spectroscope cursor to find each element’s fingerprint, then use absorption spectra and starlight to work out what stars are made of. The last stage uses hydrogen’s energy levels to show why the lines are separate.
Made with three.js
SimulationFerris Wheel Trigonometry
Turn a 100 m riverside Ferris wheel at dusk and a graph pen draws your height. Predict and check why the graph is a wave rather than a circle, explore radian measure and coterminal angles, the graphs of sine, cosine and tangent, then match another wheel's height graph.
Made with three.js
GameMendel's Garden
A five-chapter story game: as Mendel's assistant, cross peas in the abbey garden and harvest hundreds of seeds to discover dominance, segregation, independent assortment and the test cross.
Made with three.js
SimulationSeismograph and seismic waves
A drum seismograph records the P wave and then the S wave. Tap a record to open the reader, set the P and S cursors to read the PS time, turn it into distance, draw three circles on the map, predict the epicentre and check it.
Made with Anatomy
GameQuantum Post Office: Letters That Reveal Eavesdroppers
A 15–20 minute story game: as a new postal worker, test superposition and measurement on a photon bench, catch an eavesdropper because tapping a quantum key raises the error rate, then help a town meeting choose, with reasons, how each institution should respond to quantum computers that threaten today's public-key encryption.
Made with RPG Maker MZ
SimulationThe Endless Bounce
Drop balls with different bounce ratios r from a height h and watch the distance h + 2hr + 2hr² + ⋯ of an endlessly bouncing ball pile up as partial sum bars that approach the sum of the series h + 2hr/(1 − r). See that the sum grows as r nears 1, diverges when r = 1, and that the time until the ball stops is also finite, a geometric series with ratio √r.
Made with three.js
SimulationVirtual Thermal Camera: Equilibrium, Specific Heat and Phase Change
Use a virtual thermal camera to watch conduction, convection and radiation, thermal equilibrium, specific heat and expansion, and the heating curve of ice and cooling curve of water. Switch between thermal, visible and particle views of the same calculation, test your prediction and read the time–temperature graph.
Made with HTML · JavaScript
SimulationOptical Microscope
Turn a hand-inked school microscope to learn its parts, focus with the coarse and fine knobs, and look at onion skin cells at 40×, 100× and 400×. See inside to follow the light path and the gears that move the stage.
Made with HTML · JavaScript
SimulationGas Particles and Pressure: Boyle's and Charles's Laws
Measure gas pressure from the pushes of 200 particles hitting the walls, then change the volume with a piston or the water-bath temperature (0–100 °C) and record points to build pressure–volume and volume–temperature graphs. Each point also records how often and how hard the particles hit, for a particle-model explanation.
Made with Web VPython
SimulationForce Lab: Elastic Force, Buoyancy and Friction
Hang weights on springs and measure the extension, lower an object on a spring scale into water to find the buoyant force, and pull a wooden block to measure the force just before it moves. In each lab you predict first, see the forces as arrows (size and direction), and check with a table or graph.
Made with SceneryStack
SimulationMirrors, Lenses and Mixing Light
Drag a flower and an eye to trace how light reflects off a plane mirror into the eye and where the image appears; compare upright/inverted and larger/smaller views through convex and concave lenses and mirrors; mix red, green and blue light, zoom into screen pixels and predict the color of a red apple under green light.
Made with HTML · JavaScript
SimulationPower Strip Overload
In a 3D room on a winter morning, plug a hair dryer, heater and kettle into power strips and wall outlets yourself, and watch the currents of parallel appliances add up in one strip cord on current bars and a thermal camera. Measure voltages and currents of series and parallel connections with a multimeter on a lab bench, fix overloads and daisy chains, then choose safety rules with reasons.
Made with three.js
SimulationSpeaker Workshop
Watch in slow motion how the force on a coil in a magnetic field moves the cone and the air inside a cutaway speaker, then design speakers from a paper cup, a plate or a foam board, measure their sound level and listen to them. Spin a motor that works the same way and sort materials by how a magnet attracts or repels them.
Made with three.js
SimulationOhm's law bench
First predict what doubling the voltage does to the current. Then set the voltage and the nichrome wire's length and thickness, plot the readings on a voltage–current graph (voltage across, current up), work out the resistance as voltage ÷ current, and compare with the prediction.
Made with Anatomy
SimulationWaves and Sound
Watch particles in a rope and in air vibrate in place while a wave passes, then compare amplitude (loudness), frequency (pitch) and waveform (tone color) with an oscilloscope and synthesized sound. A high-school tab shows and plays standing waves on a string and in open and closed pipes, measures the speed of sound with a resonance tube, and demonstrates the Doppler effect of a moving source.
Made with p5.js
SimulationFree Fall and Mechanical Energy
Drop two objects that leave strobe images, and use time–speed graphs and a data table to find that they gain 9.8 m/s every second. Energy bars and a roller coaster show mechanical energy changing form and being conserved; with air resistance or friction, the lost mechanical energy becomes heat (high-school extension).
Made with Web VPython
SimulationImpulse, Safety Devices and Momentum
Stop a cart against a concrete wall, a mat and an airbag at the same speed and compare impulses as areas under force-time graphs. An extension tab collides two carts and checks with a bar chart that total momentum is conserved (links to high-school physics).
Made with Web VPython
GameOrbit Mission
A five-mission game: hit villages with Newton's cannon, then fire faster until the ball becomes a satellite. Arrows show that falling and orbiting objects both accelerate toward Earth's center.
Made with three.js
2:12VideoElectromagnetic Induction: Magnets, Coils and Generators
A 3D look at how a changing number of magnetic field lines through a coil drives an induced current, leading on to rotating-coil generators and energy conversion in power plants. No narration; explained through subtitles.
Made with ManimGX
GamePerpetual Motion Patent Examiner: Judge the Machines That Never Stop
A 20–25 minute story game: as a new patent examiner, run six perpetual motion inventions on a test bench (an overbalanced wheel, a recirculating mill, a magnet ramp, a ship run on ocean heat, a drinking bird and a self-charging electric car), balance each energy ledger, then judge it with an evidence card and a stamp.
Made with RPG Maker MZ
SimulationPhoton Cannon
Fire a photon cannon at the metal plate in a vacuum phototube and change the frequency, intensity, metal and voltage to pit “light is just a wave” against experiment in five rounds. Plot maximum kinetic energy against frequency from stopping voltages to read Planck’s constant and the threshold frequency, then explore image sensors, light sensors and solar cells where one photon moves one electron.
Made with three.js
SimulationBalance Lab
Hang weights on a lever bench, slide the strings of a mobile, and find when blocks, trucks and a crane tip over to explore equilibrium (zero net force and zero net torque) and the stability of structures. The balance point of a mobile turns out to be the internal division point of two masses, on a number line and on a coordinate plane.
Made with three.js
SimulationLight Clock
Fly a spaceship carrying a light clock (light bouncing between two mirrors) past a space station and watch time dilation happen. Compare it with a ball clock, switch to the ship’s view to measure each other’s clocks and lengths, then count muons raining down from the sky from both the ground’s and the muons’ point of view.
Made with three.js
SimulationElectric Field Topography
Point charges raise a 3D landscape whose height and colour show the electric potential, with equipotentials and field lines drawn on it. Release test charges, measure with a probe to check E = kq/r² and superposition, then read ready-made maps to infer field direction, strength and charges hidden under clouds.
Made with three.js
SimulationOne Electron at a Time: Double Slit
Fire electrons one at a time through a double slit in a vacuum tube and watch single dots build up an interference pattern. Close a slit, switch on a which-path detector and change the accelerating voltage (de Broglie wavelength), interpret the results with probability waves, compare with balls and water waves, and see why electron microscopes use electrons.
Made with three.js
SimulationPiston Heat Engine
Heat, cool and load a gas in a glass cylinder to see isochoric, isobaric, isothermal and adiabatic processes obey Q = ΔU + W, close the loop into a weight-lifting engine, design a cam-wheel engine to probe the limits of thermal efficiency, and explain irreversible changes with entropy as a count of arrangements.
Made with three.js
SimulationSwitch Off the GPS Clock Correction
Why are GPS satellite clocks deliberately set ‘wrong’? On a 3-D Earth, find your position from satellite signals and switch the height and speed effects on and off to see the +38.5 μs a day. Then turn the correction off: a simple receiver that trusts a ground clock places you up in the sky, while a real receiver keeps your position but gets the time wrong. Six stages that go on to the equivalence principle, escape velocity and atmospheres, how rockets reach orbit, and black holes.
Made with three.js
SimulationNoise-Cancelling Headphones
Inside a noise-cancelling headphone cut in half, match the anti-noise's delay (phase) and size to bring the sound at the ear to zero, then compare kinds of noise, processing delay and ear cushions. In an echo-free room, walk between two speakers to find constructive and destructive interference set by path difference, and quiet one seat with an anti-noise speaker.
Made with three.js
SimulationBuild a Laser
Fire photons at a single atom to see absorption and spontaneous and stimulated emission, then build and switch on a ruby laser from a rod, a pump lamp and two mirrors. Find population inversion and the lasing threshold, compare laser light with a flashlight (directionality, monochromaticity, coherence) and send a picture down an optical fiber with laser pulses.
Made with three.js
SimulationAurora Factory
Fire electrons, protons and neutrons into a coil-driven magnetic field to find when the Lorentz force appears and why charges circle and spiral, watch Earth's dipole field deflect the solar wind, and send particles along field lines to build the Van Allen belts and light auroras (green and red oxygen, violet nitrogen). Finish by running a wire swing, a circular accelerator and a tokamak.
Made with three.js
SimulationInside an LCD Pixel
Block light with two or three polarizers and bring it back, then spread one LCD pixel out layer by layer to see the twisted liquid crystal turn the light's vibration direction and a voltage untwist it to switch the light off. Mix colors with red, green and blue subpixels, identify the polarization of different lights with a sensor and polarizer, and explore polarized sunglasses and 3D movie glasses.
Made with three.js
SimulationSTM Probe: Quantum Tunneling
Send a ball and electrons that lack the energy to climb a barrier and watch the probability wave leak through, then use a scanning tunneling microscope tip to measure gap and current, image an atomic surface and move atoms to write a letter, and explore tunneling leakage in shrinking chips and inside flash memory.
Made with three.js
2:38VideoRefraction, Total Internal Reflection, and Optical Fiber
Shows refraction, refractive index and Snell's law through wavefronts slowing at a boundary, sweeps the incidence angle up to the critical angle (about 42° for glass) and total internal reflection, then follows light trapped by total reflection in a curved glass rod and an optical fiber carrying data. No narration; explained through subtitles.
Made with Manim
SimulationCollision Box
Watch effective collisions and the activation energy with particles in a 3D box, and change temperature, concentration and catalyst to see the kinetic energy distribution and the rate graph change together. Find a rate law from runs with different starting concentrations and read half-lives from first-order graphs.
Made with three.js
GameAtom Builder
A mission game: drag protons, neutrons and electrons into a 3D atom and watch the element name, charge, ion formula and periodic-table position change. Seven middle-school missions run up to elements in the same group and ions moving in an electric field; an eighth, high-school mission uses the shell model to link electron arrangement and stability.
Made with three.js
GameMixture Separation Lab
Solve six requests: salt water, water and ethanol, water and oil, sand and salt, potassium nitrate with salt in it, and felt-tip ink. Use heating curves, density and solubility curves to decide whether a sample is pure or a mixture, then choose distillation, a separating funnel, filtration, evaporation, crystallization or chromatography and run it on detailed lab apparatus.
Made with Anatomy
GameReaction Balance: Conservation of Mass and Chemical Equations
A 16-stage game: put ball-model particles on a balance to balance chemical equations, predict and test conservation of mass with an electronic balance, and find definite mass ratios and gas volume ratios from heating data and gas reactions.
Made with HTML · JavaScript
2:27VideoIonic and Covalent Bonds
Using electron-shell models, see sodium and chlorine exchange an electron and water and oxygen share electron pairs, rotate a 3D salt crystal and molecule models, then compare the electrical conductivity of salt, water and oxygen. No narration; explained through subtitles.
Made with ManimGX
2:25VideoPatterns in the Periodic Table
Elements 1–20 assemble into the periodic table; outer-shell electrons and ion formation explain group similarities, and a “one step further” section shows atomic radius and ionization energy trends. No narration; explained through subtitles.
Made with Remotion
GameNeutralization Arcade
A Python (pygame) game: drop sodium hydroxide solution into hydrochloric acid, watch H⁺ and OH⁻ meet and form water, and bring the BTB color to green (neutral). Choose concentrated or dilute solutions and find the neutral point from color and temperature alone; the temperature lab plots temperature against drops added.
Made with pygame
SimulationBrown Gas Syringe
Push and pull a syringe of 2NO₂ ⇌ N₂O₄ gas in a glass tank, dip it in ice water or hot water, and add NO₂ or N₂O₄ to watch the brown color change. Count forward and reverse reactions in the particle view to see dynamic equilibrium, find the equilibrium constant from concentration data, and compare the reaction quotient Q with K to predict how the equilibrium shifts.
Made with three.js
SimulationChemical Cell Workshop
A 3D lab bench where the voltmeter shows the difference of standard reduction potentials of the two electrodes you fit. In the particle view, watch anode atoms lose electrons and dissolve, electrons cross the wire to turn cathode ions into metal, and salt-bridge ions move, alongside half-reactions and oxidation numbers, then find what every cell from the voltaic pile to the lithium-ion cell has in common.
Made with three.js
SimulationPhotosynthesis Lab
Check what photosynthesis uses and makes with BTB, oxygen and starch tests; change lamp distance, carbon dioxide or temperature one at a time, count bubbles per minute and plot them with Python (matplotlib) running in the browser; then follow photosynthesis, respiration, gas exchange and food transport through day and night.
Made with Python · matplotlib (Pyodide)
GameBlood Delivery Run
A Godot game where you steer a single red blood cell through the inside of the vessels. Over three stages, you ride each heartbeat through the heart's four chambers and valves, trade oxygen and nutrients in the capillaries beside alveoli, villi, nerve cells and muscle cells, follow ammonia as the liver turns it into urea and the kidneys filter it out, and feel the heart and breathing speed up while running.
Made with Godot
2:29VideoFrom Stimulus to Response: How Neurons Carry Signals
Follows the parts of a neuron (dendrites, cell body, axon), the direction of the signal, and the sensory neuron → interneuron → motor neuron pathway, then races signals at the same speed to compare a conscious response with unconditioned reflexes (withdrawal and knee-jerk). No narration; explained through subtitles.
Made with Manim
2:49VideoMitosis and Meiosis
A cube-shaped model cell shows why cells divide (surface area vs. volume), then a 3D model cell (2n=4) follows the chromosomes through mitosis and meiosis I and II and compares the two. No narration; explained through subtitles.
Made with Blender
GameA Carbon Atom's Journey
A 20–25 minute story game: become Tani, a carbon atom in a carbon dioxide molecule, and travel the atmosphere, biosphere, hydrosphere and geosphere, collecting a passport stamp in each. Run air sampling, photosynthesis in a leaf, a deer's breathing, dissolving in the sea and foraminifera shells, limestone sedimentation and weathering, subduction and eruption, and coal burning yourself, then complete a carbon cycle map.
Made with RPG Maker MZ
SimulationPredators and Prey: Ecosystem Balance
Python running in the browser (Pyodide, numpy, matplotlib) computes and plots how rabbits (prey) and foxes (predators) rise and fall and settle back into balance. Trigger predator removal or a drought, and edit and rerun the Python code on screen.
Made with Python · matplotlib (Pyodide)
SimulationAction Potential Lab
Stimulate a 3D axon to find the threshold and the all-or-none law, then scrub through a membrane close-up as Na⁺ and K⁺ channels open and close and the membrane potential graph is drawn. Add myelin to time saltatory conduction, and see how a reuptake inhibitor and a receptor blocker change the signal in the next neuron at a synapse.
Made with three.js
SimulationMitochondria Power Plant
Open and close an oxygen valve on a cutaway 3D mitochondrion and a close-up of its inner membrane to watch electrons flow along the electron transport chain, H⁺ build up in the intermembrane space and ATP synthase turn. Count ATP per glucose from substrate-level and oxidative phosphorylation, follow each stage from glycolysis to oxidative phosphorylation, and compare aerobic respiration with lactic acid and alcoholic fermentation.
Made with three.js
SimulationPhases of the Moon
Orbit the Moon in a 3D Sun–Earth–Moon model and change the time of observation to see, from the same model, where and in what shape the Moon appears in the southern sky (37°N). The Eclipses view shows umbra and penumbra, the eclipse as seen from Earth, and why the tilted lunar orbit prevents monthly eclipses. Includes a five-question prediction challenge.
Made with three.js
2:16VideoEarth's Rotation and Revolution, and the Moving Sky
Switching in 3D between Earth seen from space and the sky seen by an observer, the video links Earth's rotation to the stars' diurnal motion, and Earth's revolution to the Sun's annual motion and the seasonal constellations.
Made with ManimGX
SimulationHow Far Are the Stars? Annual Parallax and Brightness
Overlay telescope photos taken in January and July, read the annual parallax off the scale and work out the distance in parsecs. Measure how light intensity falls with distance using a lamp and sensor, move real stars to 10 pc to compare apparent and absolute magnitude, and compare surface temperatures by color.
Made with three.js
SimulationPlate Boundaries, Earthquakes and Volcanoes
Plot 7,031 real magnitude-6+ earthquakes (1976–2025), 1,502 Holocene volcanoes and plate boundaries on a 3D globe to see that earthquake and volcanic belts follow plate boundaries, then link quake depth and volcanoes to animated cross-sections of divergent, subduction, collision and transform boundaries.
Made with three.js
2:46VideoGlobal Winds, Ocean Currents and El Niño
Starting from the energy imbalance between latitudes, the video shows the global wind belts and the North Pacific surface gyre on a 3D globe, then compares normal, El Niño and La Niña conditions in a model of the equatorial Pacific.
Made with ManimGX
2:29VideoThe Greenhouse Effect and Global Warming
An animated model of solar radiation, Earth's infrared radiation, absorption and re-emission by greenhouse gases and radiative balance, followed by NOAA CO₂ and NASA temperature data, impacts and responses. No narration; explained through subtitles.
Made with HyperFrames
SimulationPowers of Ten Journey
A 3D scene and a common logarithm ruler that take you from a proton (1.7 × 10⁻¹⁵ m) to the observable universe (8.8 × 10²⁶ m), changing the view width by factors of ten. Choose two objects to find how many times bigger one is from the gap on the scale (the difference of common logarithms), and find the common logarithm of a number like 3.8 × 10⁸ as a place within one step.
Made with three.js
SimulationWhat a Positive Test Really Means
Test 1,000 people in a 3D town square for a made-up infectious disease, gather only the positives on a stage and reveal their actual status to see the conditional probability P(disease | positive) as counts of people, a 2×2 table and a formula. Change prevalence, sensitivity and specificity, test again, and use the multiplication rule to see why even an accurate test can give more false positives than true positives.
Made with three.js
SimulationFence Pasture
Build a rectangular pasture with 40 m of fence, using a barn wall or a river as one side. Dragging a corner post moves a point on the graph of the area S(x) = x(40 − 2x) and changes the number of sheep, and on each piece of land you predict and then find where the area is largest or smallest within the range of x set by the wall length and the land depth.
Made with three.js
SimulationParabola and the x-Axis
Drag the vertex and the width of a parabola and watch the points where it meets the x-axis (the real roots of the quadratic equation) change together with the discriminant D, including the moment two roots merge into a double root and become imaginary. Choose an inequality sign to see the solution of the quadratic inequality on a number line.
Made with HTML · JavaScript
SimulationCushion Billiards
Aim and shoot on a 3D billiard table laid on the coordinate plane so that the ball bounces off a cushion and hits the target ball. Turn on the mirror ball to see B(a, b) reflected in the cushion line beyond the cushion: aiming straight at it gives the bent path to B (x-axis, y-axis, two cushions, and a wall on the line y = x).
Made with three.js
SimulationRoller Coaster Design
Drag handles to design a polynomial track y = f(x) while the train’s slope gauge measures and plots f′(x). Five missions explore sign charts, local maxima and minima, tangent lines, real roots of f(x) = k, and maximum and minimum values on a closed interval.
Made with three.js
SimulationGalton Board
Drop steel balls through a 3D Galton board where each peg sends a ball right with probability p, and follow the thread from counting paths (Pascal's triangle, the binomial theorem) to the binomial distribution B(n, p) and the normal curve. Predict the shape 1,000 balls make, then check it.
Made with three.js
SimulationSlicing a Cone: Conic Sections
Tilt a plane through a glass double cone to get a circle, ellipse, parabola and hyperbola, find the foci with spheres in the cone (Dandelin spheres) to check definitions such as PF₁ + PF₂ = 2a, then connect the curves to their standard equations and to tangent lines found with the discriminant.
Made with three.js
SimulationEllipse Billiards
On a 3D elliptical billiard table, draw the cushion with two pins and a string to find what an ellipse is (PF + PF′ = 2a) and c² = a² − b², then find the tangent line at a point on the cushion from the discriminant D = 0. Shoot and send light to discover that a ball shot from one focus always passes through the other focus and that a parabolic dish gathers light parallel to its axis at the focus.
Made with three.js
SimulationA Point on a Bicycle Wheel
Roll a bicycle wheel along a night road, watch the reflector on its rim trace a cycloid, and differentiate with respect to the parameter θ to get the reflector’s velocity and the slope of the tangent. Find that the reflector stops for an instant when it touches the ground (the cusp) and moves at twice the bike’s speed at the top, then compare it with the smooth curve traced by a point on a spoke.
Made with three.js