Rev 6 · 2026-10-30 08:35 (Tbilisi)
Hŷpercast · tool showcase

How the world
makes electricity

From four equations to 31,772 terawatt-hours a year. Every picture on this page was built by a different tool from the Hŷpercast catalogue, from open data.

Background: AI-generated (FLUX)
31.8k TWhworld electricity, 2025
43%low-carbon share
8.7%from solar
33%still from coal
Charge makes electric field (Gauss)
No magnetic charges: field lines always loop
A changing magnetic field makes an electric field (Faraday)
Current and a changing electric field make a magnetic field (Ampère–Maxwell)

Four equations, all of electricity

KaTeX draws them instantly. An AC wave is just these equations at work (three-phase, drawn inline by function-plot).

KaTeXfunction-plot
Equations: Maxwell (1865), modern vector form.

The accessible version

Same equations via MathJax: numbered, with hidden MathML for screen readers, and an explorer you can step through with the arrow keys.

MathJax
MathJax 3, assistive MathML and the a11y explorer.

Maxwell, built term by term

Each equation arrives with what it means. Then empty space is assumed, and the wave equation and the speed of light fall out.

Manim CE
Manim Community, rendered on CPU.
SymPycurl(curl E) identity holds: yes · c = = 299,792,458.000 m/s
SageMathsqrt(1/(eps0*mu0)) = 299,792,458.000 m/s
Maxima1/(√ε₀·√μ₀) = 299,792,458.000 m/s
Definedc = 299,792,458 m/s exactly (SI). Constants: CODATA 2018.

Three maths engines, one answer

SymPy derives the wave equation from Maxwell. SageMath and Maxima re-derive the speed separately. All three agree.

SymPySageMathMaxima
Computed here; scripts kept with the page.
104.6033997307423 43.581404343244 315.19350738891336 200.02259565675598`E`.arrow`E`.text`B`.arrow`B`.text`B`.ring`B`.dot`k`.arrow`k`.text

E, B and the direction of travel

Penrose lays the diagram out from the maths: it is told E ⊥ k and B points out of the page, and solves for a layout that obeys.

Penrose
Penrose: Domain, Substance and Style programs.

Light, seen as E and B

A travelling wave in 3D. The electric field (amber) and magnetic field (blue) stay at right angles. Drag to orbit.

Mathbox
Mathbox 2 on three.js.

Move the magnet, light the bulb

PhET's tested simulation, embedded as is.

PhET
PhET Interactive Simulations, University of Colorado Boulder, CC BY 4.0.

A wave leaving an antenna

Maxwell's curl equations stepped on a 360 × 360 grid (the Yee scheme). Rings spread at the speed of light, 30 cm apart at 1 GHz.

NumPySciPymatplotlib
Computed here, 900 time steps.
    for n in range(steps):
        Hx[:, :] -= dt / (mu0 * dx) * (Ez[:, 1:] - Ez[:, :-1])
        Hy[:, :] += dt / (mu0 * dx) * (Ez[1:, :] - Ez[:-1, :])
        Ez[1:-1, 1:-1] += dt / (eps0 * dx) * ((Hy[1:, 1:-1] - Hy[:-1, 1:-1]) - (Hx[1:-1, 1:] - Hx[1:-1, :-1]))
        Ez[cx, cy] += np.sin(2 * np.pi * f0 * n * dt) * (1 - np.exp(-(n / 60) ** 2))
        Ez *= damp
        if n % 3 == 0:

The loop that does it

The whole simulation is these seven lines: update H from E, then E from H.

Shiki
Highlighted at build time.
Magnetic field lines around a wire and a coil

Field lines round a wire and a coil

Biot–Savart summed over every bit of wire, then traced with streamplot. A coil straightens the field into a beam through its middle.

matplotlibNumPy
Computed here.
Faraday law and right-hand rule figure

Faraday and the right hand

Print-grade figures for the handout: a moving magnet drives current through a lamp, and the grip rule for a wire.

TikZcircuitikz
LaTeX, vector output.

An electron in a magnetic field

The Lorentz force F = q v × B bends it into a helix. Stepped live in the browser.

GlowScript / VPython
GlowScript 3.2.

Play with power

Drag the sliders. Real power is V·I·cos φ: shift the current out of phase and the dashed power curve dips below zero.

Desmos
Desmos API (trial key).

The field round a wire, in 3D

Rings of arrows circle the current, weaker further out (B ∝ 1/r). Rotate it.

GeoGebra 3D
GeoGebra, non-commercial use.

The light wave, lit in 3D

The wave Maxwell predicted: the electric field (amber) and magnetic field (blue) sweep shaded surfaces as the camera flies round. Rendered with OpenGL on the Mac.

ManimGL
ManimGL 1.7.2 on the Mac node (Apple Silicon).
Coming nextQucs-S download is blocked here; will render via GitHub Actions.

Where Maxwell meets a circuit

Matching an antenna to its feed line on a Smith chart.

Qucs-S

Where the energy goes

Fuel burned on the left; electricity made and heat lost on the right. A third to a half of a thermal plant's fuel leaves as waste heat.

D3d3-sankey
Our World in Data energy dataset (CC BY 4.0). Efficiencies: typical values, labelled.

Every technology on three axes

How often it runs, what it costs and what it emits. Rotate the cube.

Plotly
Lifecycle CO₂: IPCC AR5 WGIII Annex III medians. Capacity factor and cost: rough typical values.

Water through a turbine

2D physics: falling water pushes the blades round. Click to open the gate wider.

matter.js

A rotor in the wind

3D physics: gusts push three blades on a hinged hub while the generator holds it back.

Rapierthree.js
Illustrative torque model.

A panel that follows the sun

A motor turns a solar panel to face the sun from 6 am to 6 pm, simulated with joints and control.

MuJoCo
Simulated here.
Blender render of a wind farm at dusk

A wind farm at dusk

Photoreal rendering, built entirely from code: terrain, sky and 36 turbines.

Blender
Cycles, CPU.
OpenSCAD wind turbine blade

A blade, as a parametric part

Airfoil sections (blue) show how the blade tapers and twists from root to tip. Change one number; the part rebuilds.

OpenSCAD

The silicon in a solar cell

The diamond-lattice crystal every panel is made of, built atom by atom.

3Dmol.js
Lattice constant 5.431 Å.

Nature's solar cell

Photosystem II, the protein plants use to turn sunlight into electrical charge, loaded live from the Protein Data Bank.

Mol*
PDB 3WU2 (Umena et al. 2011), RCSB PDB.
Waiting for a photo API keyPexels/Unsplash API is blocked here.

The real thing

A real photograph where it matters.

Pexels / Unsplash
Rendering nextrembg's model download is blocked here.

Lifting the turbine out

An AI cutout turns a flat picture into layers for parallax.

rembg

From power station to plug

The grid as an architecture diagram. The power lines draw themselves in order: generation, transmission, distribution, home.

D2anime.js
Voltages: typical European values.

A transformer, built in 3D

Magnetic flux (green) runs round the iron core and reverses with the AC, slowed 100×. The camera follows a keyframed path; grab it to orbit.

three.jsTheatre.js
Built in code; no model files.
Hand-drawn transformer sketch

How a transformer works

The same idea as a whiteboard sketch: turns ratio sets the voltage, and only AC passes.

Excalidraw
OpenSCAD render of a transformer core

The core, as a real part

A parametric E-I core: 40 laminations and a copper winding. Change one number in the code and the part rebuilds.

OpenSCAD

Poke a live circuit

Falstad's simulator: current dots flow through a transformer. Click switches, drag values.

CircuitJS
CircuitJS by Paul Falstad (GPL).
Bridge rectifier schematic

AC in, DC out

The bridge rectifier in every charger, drawn from code.

schemdraw
ngspice simulation of a bridge rectifier

…and simulated

ngspice runs the same circuit. The capacitor holds the voltage up between peaks; the mains current comes in short gulps.

ngspicematplotlib
SPICE model 1N4007; 12 V rms, 2200 µF, 47 Ω.
H-bridge inverter schematic

DC back to AC: the inverter

Every solar panel and battery needs one. Four switches flip the load's polarity many times a cycle.

schemdraw

The switching pattern, drawn

A timing diagram of the H-bridge's gate signals and the voltage the load sees.

WaveDrom
GTKWave trace of a sine PWM generator

The switching pattern, simulated

The PWM generator written as real Verilog and simulated cycle by cycle. A sine is compared with a fast triangle; the gate signals widen and narrow with the sine.

Icarus VerilogGTKWave
Simulated here; source pwm.v.

Power factor, by hand

Drag the current arrow. The angle to the voltage sets how much of the current does real work.

JSXGraph
CircuitR = 2 Ω, L = 1 mH, C = 100 µF, step input V₀
Maxima
Checkω₀ = 1/√(LC) = 3162 rad/s; α = R/2L = 1000 s⁻¹; ω_d = √(ω₀² − α²) = 3000 rad/s ✓

Switching on a grid filter

Maxima solves the series RLC filter exactly with a Laplace transform: the voltage rings at 3 kHz and settles in about 5 ms.

MaximaKaTeX
Computed here (maxima_check.mac).
Sequence diagram of grid frequency response

The 5 seconds after a plant trips

Who reacts, in what order, to hold the grid at 50 Hz.

Mermaid
Typical timescales (GB/EU grid codes).
PlantUML state machine of a gas plant

A gas plant's day

The states a power plant moves through, as a UML state machine.

PlantUML
Graphviz network of European interconnectors

Europe, wired together

Main cross-border links, laid out automatically. Thicker lines are bigger links.

Graphviz
Selected links; widths indicative.
Fishbone diagram of blackout causes

Why blackouts happen

Causes grouped as a fishbone diagram.

AntV GPT-Vis

Getting rooftop solar connected

The steps as a formal business process (BPMN 2.0), with the branch when the local network is full. Scroll to zoom.

bpmn.io
Typical process; varies by country.

Walk through a substation

Game-engine rendering. The camera glides until you click; then use WASD or the arrow keys.

Babylon.js
Built in code.
Waiting for the Wokwi project linkI'll send the code; you paste it into Wokwi and share.

A smart meter, counting

A microcontroller counting meter pulses, simulated in the browser.

Wokwi
Rendering nextLogisim needs a screen; automating with a virtual display.

The meter's counter, gate by gate

The same pulse counter as logic gates.

Logisim-evolution
Rendering via GitHub ActionsXyce builds there.

A whole grid after a fault

Hundreds of nodes in one transient run.

Xyce
Rendering via GitHub ActionsFreeCAD's download is blocked here.

A tower under wind load

Stress colours on a transmission tower.

FreeCAD
Rendering nextStructurizr via its CLI.

The grid at three zoom levels

One model, shown at country, region and street level.

Structurizr
Rendering nextdraw.io export.

The substation's single-line diagram

With proper IEC electrical symbols.

draw.io
Building nexttldraw component.

Sketch your own grid

An open canvas for visitors.

tldraw

An inspection drone on a power line

A hover controller fights gravity and gusts while a fan of ray-casts measures the clearance to the conductors. It turns red where the line sags.

PyBullet
Simulated here; own drone model (URDF).

Forty years in one bar

The world's mix re-divides itself year by year while the total climbs. At the end, solar lifts out of the bar.

Motion CanvasRevideo
Our World in Data energy dataset (CC BY 4.0).

The world's electricity as a river

Each band is a fuel; its width is terawatt-hours that year. Hover anywhere for the numbers.

ECharts
Our World in Data energy dataset (CC BY 4.0).

The 12 biggest producers, side by side

Coal, gas, solar and wind since 2000. Each panel has its own scale, so small countries are readable too.

Vega-Lite
Our World in Data energy dataset (CC BY 4.0).

Any country, at a glance

Pick a country. A light canvas chart shows its mix for the latest year.

Chart.js
Our World in Data energy dataset (CC BY 4.0).

A solar race for every continent

Six races made in bulk from one table, one line of code each.

bar_chart_racepandas
Our World in Data energy dataset (CC BY 4.0).

The data step, as it really ran

A recorded terminal session. Pause it and copy any command: it's text, not video.

asciinema
Recorded in this build.
Rendering via GitHub ActionsVHS needs Go modules this workspace can't reach.

The same step, as a video

A scripted terminal clip for the showreel.

VHS
Waiting for your Flourish storyI'll send the CSV and the two clicks.

A story version

Flourish's hosted scrollytelling template, fed the same data.

Flourish

The press-kit chart

A newsroom-style, fully responsive chart, made and filled through Datawrapper's API, then published from the Datawrapper account.

Datawrapper
Our World in Data energy dataset (CC BY 4.0).

Where electricity is clean

Low-carbon share of each country's electricity (nuclear plus renewables). Hover a country; the map tours the continents by itself until you touch it.

MapLibre GL
Our World in Data energy dataset (CC BY 4.0).

Every power plant on Earth

About 35,000 plants as columns: height is capacity, colour is fuel. Right-drag to tilt and spin; hover a column for its name.

deck.glMapLibre GL
WRI Global Power Plant Database v1.3 (CC BY 4.0).

When each kind of plant was built

Every plant by start year and size. Big coal and hydro cluster in the past; a swarm of small solar and wind fills the last decade.

Observable Plot
WRI Global Power Plant Database v1.3 (CC BY 4.0).

Someone exploring the chart

A recorded visit to the 12-producers chart, replayed as live page content rather than video, so it stays sharp at any zoom.

rrweb
Recorded in this build with Playwright.

The same data, on a turning globe

A React component rendered frame by frame: the globe's rotation is a pure function of the frame number, so every frame is exact and repeatable.

Remotiond3-geo
Our World in Data energy dataset (CC BY 4.0). Operator's own channel (Remotion licence).

Inside a battery's cathode

Lithium cobalt oxide: lithium (green) sits between layers of cobalt (blue) and oxygen (red). Charging pulls the lithium out. Drag to rotate.

3Dmol.js
R-3m, a = 2.816 Å, c = 14.05 Å; built here.
PyMOL render of LiCoO2

The same crystal, ray-traced

A cover-quality still of the layered structure.

PyMOL
RDKit molecule drawings

What the liquid is made of

The electrolyte solvents, the lithium salt, an additive and the binder, drawn from their chemical formulas.

RDKit
Molar masses computed by RDKit.
KiCad PCB of the LibreSolar MPPT 2420 HC

A real solar charge controller

The open-hardware LibreSolar MPPT 2420 HC board, exported straight from its KiCad design files.

KiCad
LibreSolar MPPT 2420 HC v0.2.3 (open hardware, see repo licence).

The showreel

Five tools' clips cut to a narration, with word-by-word captions and broadcast loudness. The chapter menu came from automatic cut detection.

ffmpegDeepgram AuraWhisperlibassloudnormPySceneDetect
Narration: Workers AI. Loudness −16 LUFS target.

The same reel, with crossfades

A multitrack edit with luma transitions between every clip.

MLT / melt

Every clip at once

Nine tools' output composited into a single moving grid.

MoviePy

A guided tour of this page

A scripted visitor clicks through the page; the video zooms into each click, and the dead time is cut out automatically.

PlaywrightAuto-zoomauto-editor
285 s recorded → 151 s after trimming → shown at 3×.
WhisperIn 1865, James Kirk Maxwell wrote four equations. They explain every motor, every generator and every power line and they predict light itself. Today the world makes about 32,000 terawatt hours of electricity a year. Coal is still the biggest single source but…
Words61 words, each with start and end time

What the speech engine heard

Whisper transcribed the English narration with word timings. It heard Maxwell's middle name as "Kirk"; the captions correct it.

WhisperDeepgram Aura
Workers AI: whisper-large-v3-turbo.
MeloTTS«En 1865, James Clerk Maxwell escribió cuatro ecuaciones…»
Length11.6 s, 44.1 kHz

The opening in Spanish

A second voice in a second language.

MeloTTS
Workers AI.
Substation hum, 50 Hzspectrogram of Substation hum, 50 Hz
Electric arcspectrogram of Electric arc
Wind turbine whooshspectrogram of Wind turbine whoosh

Sounds of electricity

Sound effects generated from a sentence each, with spectrograms (ffmpeg) so you can see them: the hum is one low band, the arc is broadband bursts, the turbine is a slow sweep.

ElevenLabsffmpeg
ElevenLabs sound generation, 4 s each.
Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9

The talk version

Developer slides from Markdown, with click-by-click reveals.

Slidev

Presenter deck

Nested slides with speaker notes (press S), and a drill-down under Mix (press ↓).

reveal.jsdecktape
Figure extracted by nbconvert

The maths behind every chart

A notebook recomputes the page's headline numbers from the raw file on every build. nbconvert runs it and pulls out the figures; Quarto publishes it.

Jupyter nbconvertQuarto
Share card

Share card

The image shown when this page is shared, laid out in code and rasterised without a browser.

Satoriresvg
AI-generated poster

A museum poster

An AI poster with the headline lettered in. The first attempt misspelled it; this is the third.

Leonardo (Workers AI)
AI-generated.
Mind map

The topic at a glance

A mind map of the whole page.

AntV GPT-Vis
AI-generated Earth at night

Chapter backgrounds

Every chapter header image was generated from a text prompt and is labelled as AI-made.

FLUX (Workers AI)
AI-generated.
brightnessPASS · Brightness is well-balanced (brightness: 40.8)
contrastFAIL · Video has low contrast (std dev: 11.5). Image may appear flat. Consider increasi
saturationFAIL · Video appears desaturated (estimated: 4.3%). Consider increasing saturation.
audio_levelsPASS · Audio loudness is good (-17.6 LUFS)
color_balancePASS · Color cast detected: blue (max deviation: 10.5%). Consider white balance correct
temporal_motionPASS · Temporal motion is adequate (63% near-static frames)

Quality check

An automatic broadcast check on the showreel. It flags the dark, low-saturation house style: a fair point, and a choice.

Kinocut

Sketch your own grid

An open whiteboard. Add a wind farm, a battery, a rooftop.

tldraw
Not built yetVoice download from Hugging Face is blocked here.

Narration in Georgian

Piper
Not built yetModel download from Hugging Face is blocked here.

A music bed

MusicGen
Not built yetLicence accepted; download blocked here until huggingface.co is allowed.

Sound effects

Stable Audio Open
Not built yetModel download blocked; Whisper's own word times used meanwhile.

Word-level alignment

WhisperX
Not built yetfreesound.org is blocked here.

A real substation hum

Freesound + DeepFilterNet
Not built yetWorkers AI offers SDXL text-only on this account; runs on the Mac.

Our diagram as an illustration

SDXL img2img
Not built yetRust crate download blocked here.

Code cards

silicon
Not built yetMac node.

Final grade and master

DaVinci Resolve
Not built yetMac node.

A native energy app, recorded

OBS + AppleScript
Not built yetMac node.

The deck as a movie

Keynote
Not built yetMac node.

Narration in Steve's voice

Resolve AI Speech / Chatterbox
Not built yetMac node.

Alt text from the pictures

MLX local models
Not built yetNeeds your Flourish story.

A story version

Flourish