The room of shapes, three.js-first. Its spine runs Felix Klein's way, letting go of one thing at a time: from [[Euclidean_geometry]], where every allowed motion keeps lengths, through [[Analytic_geometry]] and the [[Transformation_matrix]], the [[Polyhedron]] and its four-dimensional cousins, the [[Projective_geometry]] of the camera and the [[Non-Euclidean_geometry|non-Euclidean]] planes, to [[Curvature]], [[Manifold|manifolds]] and [[Topology]], and last to geometry with a clock running — the [[Convex_hull]], the [[Polygon_mesh]] and the [[Fractal]]. Article face: [[Geometry]]. Ninety-five stations in sixteen movements, one three.js microsim each; the **151 Geometry-lane three.js builds** already live on the sim host play here as stand-ins and variants while the framework sims are built in four waves. Doors: [[PORTAL_Physics]], [[PORTAL_Graph_theory]], [[PORTAL_Dynamical_system]], [[PORTAL_Signal_Processing]]. Index: [[PORTAL_INDEX]].
<!-- GIFPLATE:BEGIN v1.0 g16 — room plate pending; pick a Commons animation and verify its licence with g17_gif_verify.py on a networked lane. Do not hand-edit inside. -->
## Images
*Room plate for [[Geometry]] pending — no Commons establishing shot has been selected yet. This is a live worklist item, not an error: run `g16` to choose a plate and `g17_gif_verify.py` (networked lane) to verify its licence before it renders here.*
<!-- GIFPLATE:END -->
<!-- plate candidates already used by wiki/Geometry.md: Stereographic_projection_in_3D.svg · Von_Koch_curve.gif — a Dandelin-spheres or hypercube-rotation animation would suit the three.js-first framing better -->
<!-- GEOMETRY-NARRATIVE:START -->
## What survives: geometry as a ladder of motions
Geometry is usually introduced as a catalogue of shapes. The better question — Felix Klein's, in 1872 — is what you are allowed to do to a figure, and what survives. Slide and turn a triangle and everything survives: lengths, angles, area. That is Euclid, and Part One. Allow scaling and the lengths go but the angles stay. Allow shears and the angles go but parallels and midpoints stay. Allow projection from a point — which is what a camera does — and the parallels go too; only straightness, incidence and one odd number, the cross-ratio, are left. Allow any stretching short of tearing and nothing is left but how the thing is connected: a mug is a doughnut. Each part of this spine lets go of one more thing, and each station is a mechanism for watching what holds rather than a picture to accept.
That ladder is also how three.js is built, which is why this spine is three.js-first. A `Matrix4` is an affine map; a `PerspectiveCamera` is a projective one; a `BufferGeometry` is a polyhedron stripped to vertices and incidence; `computeVertexNormals` is differential geometry done with differences; `Earcut` is the triangulation theorem running every time a `ShapeGeometry` is asked for. The engine's documentation reads, in the right order, like a geometry syllabus, and the cross-reference tables below hold it to that.
## How the spine was drawn
Three sources were crossed to decide what a station is. **The topics** are Wikipedia's *Outline of geometry* (the *List of geometry topics* page has been merged into it and now redirects), read at oldid 1318177804 — 381 distinct section-and-topic pairs, of which 344 are placed below as a station or a See-also variant and the remaining 37 are listed, not lost, in the Outline remainder. **The books** are the twenty open textbooks catalogued in the Geometry room's `geometry_textbooks.md`, numbered B01–B20 in the catalogue's own order; every station cites the book and chapter it will footnote, and where a movement has no book at all the gap is said out loud. **The engine** is the three.js documentation index and its examples list as they stood on 2026-09-17; a coverage map near the end lists every geometry-relevant class and the stations that exercise it, so the spine doubles as a tour of the library.
A station was admitted where the three sources meet, or where two meet and the third is a named gap. Each is one concept, one verified Wikipedia title (none is a redirect or a disambiguation page — all 792 article titles on this page were checked: 771 against the English Wikipedia API on 2026-09-17, the remaining 21 — the reading shelf, the door titles and four late variants — by page fetch on 2026-09-18), and one three.js microsim, with See-also variants that reuse the sim under different keys. The surprise of the audit is that the room is already half furnished: the sim host carries **151 Geometry-lane three.js builds** (the 150-priority list of `wiki/Geometry.md`, the original nine, and ten strays from the systems set), all answering HEAD 200 on 2026-09-17, and none placed as a station by any portal until now. They play here as **stand-ins** where they match a station (the sim sits in the station's own row) and as **variants** (marked ●) where they match a See-also; the framework rebuilds come in waves.
<!-- GEOMETRY-NARRATIVE:END -->
## Part One — The Euclidean plane
Everything survives: slide, turn and flip a figure and lengths, angles and areas all come through. What Euclid assumed, what Hilbert had to add, and the one assumption that turned out to be optional.
### Movement 1 — Foundations: point, line, plane, angle
<!-- SECTIONSIMS:BEGIN g34 2026-09-19 - microsims the articles linked here play; generated by _tools/generate/g34_portal_section_sims.py; do not hand-edit inside -->
*Microsims from the articles this section links:*
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Straightedge_and_compass_construction_microsim.html" data-title="Straightedge and compass construction"></div>
<!-- SECTIONSIMS:END -->
What can be built from five permissions, which of them Hilbert found Euclid had used without asking, and why the fifth kept geometers busy for two thousand years.
*Outline sections:* General concepts · Measurements · Euclidean geometry foundations · *Books:* Euclid I (B13/B16) · Hilbert I–II, VII (B17) · Africk 1–2 (B01) · Petrunin 1–7, 19 (B02) · Bishop 1–2 (B08) · *three.js:* Math (Vector3, Line3, Plane, Ray) · Helpers (ArrowHelper, PlaneHelper, GridHelper) · Extras (ArcCurve, Path) · *Wave 1.*
| # | Station | Sim (three.js) | Explanatory spine |
|---|---|---|---|
| 1.1 | `Euclidean_geometry` | *build target* | The five postulates as five tools on one table: join, extend, sweep a circle, square a corner — then tilt a transversal until the two interior angles fall below 180° and watch the meeting point race in from infinity. Four postulates build; the fifth only promises. |
| 1.2 | `Plane_(mathematics)` | *build target* | Three dragged points span a plane; two planes meet in a line; three meet in a point — until their normals go coplanar and the point runs off along a prism of parallel lines. Incidence in space, read off as three normals and a rank. |
| 1.3 | `Angle` | *build target* | One opening, four measures: degrees, turns, slope, and the radian — shown by unrolling the arc along a ruler marked in radii. Then hinge two planes and find that a dihedral angle is only honest in the section cut square to the hinge. |
| 1.4 | `Congruence_(geometry)` | *build target* | SAS is a motion, not a rule: grab one triangle and the sim finds the slide, turn and — if needed — flip that lands it on the other. Switch to SSA and a side swings on its hinge to two different triangles: the ambiguous case, caught in the act. |
| 1.5 | `Parallel_postulate` | *build target* | Through a point off a line, how many parallels? One slider bends the ground under the construction from sphere (none) through plane (one) to saddle (as many as you like), while a test triangle's angle sum reads above, at, and below 180°. |
| 1.6 | `Straightedge_and_compass_construction` | `https://wikitube-3d-microsims.netlify.app/Straightedge_and_compass_construction_microsim.html` | A construction player: every classical construction replays as a tape of arcs and strokes with a running step count. The three famous impossibles sit beside the tools that do solve them — a marked ruler for the trisection and the doubled cube, the quadratrix for the circle — so that impossible is seen to mean impossible with these two tools. |
**Cross-reference**
| # | three.js (docs classes · examples) | Books | Outline | Tier | Feeds → · ← Fed by |
|---|---|---|---|---|---|
| 1.1 | `Vector3`, `Line3`, `Ray`, `EllipseCurve`, `GridHelper`, `DragControls` · `misc_controls_drag` | B16 I Defs, Posts 1–5; B13 I; B17 ch. I; B02 ch. 2; B08 ch. 1 | Types › Euclidean geometry, Synthetic geometry, Ordered geometry · Euclidean geometry foundations › Hilbert's axioms | live | → 1.5, 1.6, 10.1 · ← — |
| 1.2 | `Plane (setFromCoplanarPoints, intersectLine, distanceToPoint)`, `PlaneHelper`, `Line3`, `Vector3 (cross)`, `ArrowHelper`, `PlaneGeometry` · `webgl_helpers` | B16 XI.1–3; B17 ch. I, axioms of connection; B20 point, plane and line | General concepts › Point, Line and Ray, Plane · foundations › Line, Line segment, Parallel, Concurrent lines | live | → 4.1, 9.3, 15.2 · ← — |
| 1.3 | `ArcCurve`, `EllipseCurve`, `Vector3 (angleTo)`, `MathUtils (degToRad, radToDeg)`, `Plane` | B16 I Defs 8–12, I.13–15, XI Def. 6; B01 ch. 1 | Measurements › Bearing, Angle, Degree, Minute, Radian · foundations › Angle (Adjacent, Central, Complementary, Inscribed, Internal, Supplementary) | live | → 2.4, 3.2, 6.1 · ← — |
| 1.4 | `Object3D (position, quaternion)`, `Matrix4 (compose)`, `Quaternion (slerp)`, `Triangle`, `DragControls` · `misc_controls_drag` | B16 I.4, I.8, I.26; B17 ch. I, axioms of congruence; B01 ch. 2; B02 ch. 4; B08 ch. 1–2 | foundations › Congruence (Reflection, Rotation, Coordinate rotations and reflections, Translation, Glide reflection) | live | → 2.1, 4.5 · ← — |
| 1.5 | `SphereGeometry`, `PlaneGeometry`, `ParametricGeometry`, `BufferGeometry (morphed position attribute)`, `TubeGeometry (geodesics)` · `webgl_morphtargets_sphere` | B16 Post. 5, I.27–32; B17 ch. II, independence of the parallel axiom; B02 ch. 7, 11; B08 ch. 2–3; B18 ch. I | Euclidean plane geometry › Parallel postulate · foundations › Parallel · Types › Absolute geometry | live | → 10.1, 10.2, 10.3 · ← 1.1 |
| 1.6 | `ArcCurve`, `LineCurve`, `CurvePath`, `Path`, `BufferGeometry (setDrawRange reveal)`, `SVGRenderer (vector export)` · `svg_lines`, `webgl_buffergeometry_drawrange` | B16 I.1, I.9–12, IV.10–16; B17 ch. VII; B02 ch. 19 | Euclidean plane geometry › Compass and straightedge constructions (Squaring the circle), Straightedge, Poncelet–Steiner theorem · foundations › Angle trisection · Connections › Strähle construction | live | → 3.3, 5.4 · ← 1.1 |
**See-also variants** (the sim reused under different keys · ● legacy three.js live · ◐ p5.js published · ▪ article on site · a variant named under two stations extends whichever sim ships first)
- **1.1 Euclidean geometry** → `Euclid's_Elements` · `Hilbert's_axioms` · `Foundations_of_geometry` · `Synthetic_geometry` · `Ordered_geometry` · `Axiom`
- **1.2 Plane (mathematics)** → `Line_(geometry)` · `Point_(geometry)` · `Line_segment` · `Incidence_(geometry)` · `Line–plane_intersection` · `Skew_lines`
- **1.3 Angle** → `Radian` · `Degree_(angle)` · `Minute_and_second_of_arc` · `Bearing_(navigation)` · `Dihedral_angle` · `Internal_and_external_angles` · `Central_angle` ● ◐
- **1.4 Congruence (geometry)** → `Pons_asinorum` ● · `Hinge_theorem` ● ◐ · `Exterior_angle_theorem` ● · `Crossbar_theorem` ● · `Isosceles_triangle` · `Triangle_inequality`
- **1.5 Parallel postulate** → `Parallel_(geometry)` · `Absolute_geometry` · `Playfair's_axiom` · `Saccheri_quadrilateral` · `Lambert_quadrilateral`
- **1.6 Straightedge and compass construction** → `Angle_trisection` ● · `Doubling_the_cube` ● · `Squaring_the_circle` ● · `Neusis_construction` ● ◐ · `Quadratrix_of_Hippias` ● · `Lune_of_Hippocrates` ● · `Constructible_polygon` · `Compass_equivalence_theorem` · `Mohr–Mascheroni_theorem` · `Poncelet–Steiner_theorem` · `Straightedge` · `Strähle_construction`
### Movement 2 — Triangles
<!-- SECTIONSIMS:BEGIN g34 2026-09-19 - microsims the articles linked here play; generated by _tools/generate/g34_portal_section_sims.py; do not hand-edit inside -->
*Microsims from the articles this section links:*
<div class="wt-simrow">
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/pythagorean_theorem_microsim.html" data-title="pythagorean theorem"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Simplex_microsim.html" data-title="Simplex"></div>
</div>
<!-- SECTIONSIMS:END -->
Why the triangle is the atom of the subject: rigid where a quadrilateral is floppy, the unit of area, the carrier of trigonometry — and the primitive every GPU draws.
*Outline sections:* Euclidean plane geometry › Triangle (14 sub-entries), Altitude, Symmedian, Trigonometry · Trigonometric functions · *Books:* Euclid I.32–48, II.12–13, VI (B13/B16) · Africk 4–5 (B01) · Coxeter–Greitzer 1, 3 (B19) · Petrunin 6, 8 (B02) · Bishop 4–5 (B08) · *three.js:* Math (Triangle, Vector3) · Geometries (ShapeGeometry, ExtrudeGeometry) · Cameras (OrthographicCamera) · Addons › Curves (HelixCurve) · *Wave 1.*
| # | Station | Sim (three.js) | Explanatory spine |
|---|---|---|---|
| 2.1 | `Triangle` | *build target* | Drag one vertex: the angle sum holds at 180°, the area holds while the apex slides parallel to the base, and four centres ride a single line — centroid, circumcentre, orthocentre and nine-point centre, spaced 2 : 1 along Euler's line while the incentre wanders off it. |
| 2.2 | `Similarity_(geometry)` | *build target* | One centre, one ratio k: lengths scale by k, areas by k², volumes by k³ — shown on a triangle, its square and a cube stacked in one scene, with three readouts pulling apart as you drag. Double a statue's height and it takes eight times the bronze. |
| 2.3 | `Pythagorean_theorem` | `https://wikitube-3d-microsims.netlify.app/pythagorean_theorem_microsim.html` | Three proofs you can run: Euclid's windmill, where each small square shears into its half of the big one without changing area; the rearrangement, as sliding tiles; and the lift into space — de Gua's corner tetrahedron, whose three small faces square-sum to the large one. |
| 2.4 | `Trigonometric_functions` | *build target* | The unit circle lifted into a helix: down the axis you see the circle, from the side the sine, from the front the cosine. One curve, three shadows — and three orthographic cameras locked to the axes to prove it. |
| 2.5 | `Barycentric_coordinate_system` | *build target* | Three weights that sum to one: drag a point through a triangle and watch the GPU do the identical sum to blend the vertex colours. Cross an edge and one weight turns negative — exactly the test a raycaster uses for inside. Ceva's product holds at 1 the whole way. |
**Cross-reference**
| # | three.js (docs classes · examples) | Books | Outline | Tier | Feeds → · ← Fed by |
|---|---|---|---|---|---|
| 2.1 | `Triangle (getArea, getMidpoint, closestPointToPoint)`, `Vector3`, `EllipseCurve`, `DragControls`, `LineLoop` | B16 I.32, I.37–38, IV.4–5; B19 ch. 1; B02 ch. 8; B01 ch. 1; B08 ch. 4–5 | Euclidean plane geometry › Triangle (Acute and obtuse, Equilateral, Euler's line, Heron's formula, Isosceles, Pedal triangle, Right triangle, Triangle inequality …), Altitude, Symmedian · Circle › Circumcircle, Incircle and excircles, Nine-point circle, Orthocentric system | live | → 2.2, 2.5, 3.1 · ← 1.4 |
| 2.2 | `Object3D (scale)`, `Matrix4 (makeScale)`, `Vector3 (lerp)`, `BoxGeometry`, `ShapeGeometry` | B16 VI.2–4, VI.19–20, XII.18; B01 ch. 4; B02 ch. 6; B19 ch. 4, dilatation | foundations › Similarity (Similarity transformation, Homothety) · General concepts › Similar triangles, Geometric shape · n-dimensional › Homothetic center, Similarity | live | → 2.3, 2.4, 9.5, 16.1 · ← 2.1 |
| 2.3 | `ShapeGeometry`, `ExtrudeGeometry`, `Matrix4 (makeShear)`, `Triangle (getArea)`, `BufferGeometry` · `webgl_geometry_shapes` | B16 I.47–48, II.12–13, VI.31; B01 ch. 4; B17 ch. IV | Triangle › Pythagorean theorem, Pythagorean triangle, Integer triangle (Heronian triangle), Right triangle · History › Pythagorean theorem | live | → 2.4, 4.1, 4.2 · ← 2.2 |
| 2.4 | `HelixCurve`, `TubeGeometry`, `OrthographicCamera (three locked views)`, `CatmullRomCurve3` · `webgl_multiple_views` | B01 ch. 5; B03 ch. 2; B20 polar coordinates | Trigonometric functions (Asymptotes, Circular functions, Periodic functions, Law of cosines, Law of sines, Polar sine) · General concepts › Unit circle, De Moivre's theorem · Plane › Trigonometry | live | → 4.4, 11.1 · ← 1.3, 2.2, 2.3 |
| 2.5 | `Triangle (getBarycoord, getInterpolation, containsPoint)`, `BufferGeometry (vertex colors)`, `BufferAttribute`, `Raycaster` · `webgl_buffergeometry` | B19 ch. 1 Ceva, ch. 3 Menelaus | Vector spaces and complex dimensions › Linear interpolation · n-dimensional › Convex | live | → 11.2, 14.4, 15.1 · ← 2.1 |
**See-also variants** (the sim reused under different keys · ● legacy three.js live · ◐ p5.js published · ▪ article on site · a variant named under two stations extends whichever sim ships first)
- **2.1 Triangle** → `Triangle_center` ● · `Euler_line` · `Nine-point_circle` · `Incircle_and_excircles` ● · `Circumcircle` ● · `Altitude_(triangle)` · `Centroid` · `Symmedian` · `Pedal_triangle` · `Orthocentric_system` · `Concurrent_lines` · `Equilateral_triangle` ● · `Acute_and_obtuse_triangles` · `Right_triangle` · `Heron's_formula` ● ◐ · `Semiperimeter` · `Morley's_trisector_theorem` · `Napoleon's_theorem`
- **2.2 Similarity (geometry)** → `Homothety` · `Homothetic_center` · `Intercept_theorem` ● ◐ · `Geometric_mean_theorem` ● · `Angle_bisector_theorem` ● · `Spiral_similarity` · `Golden_ratio` · `Shape`
- **2.3 Pythagorean theorem** → `Law_of_cosines` ● ◐ · `Pythagorean_triple` · `Integer_triangle` · `Heronian_triangle` · `De_Gua's_theorem` · `Spiral_of_Theodorus` ● · `Apollonius's_theorem` ● ◐ · `Pappus's_area_theorem` ● ◐ · `Euclidean_distance`
- **2.4 Trigonometric functions** → `Unit_circle` · `Law_of_sines` ● ◐ · `Trigonometry` · `De_Moivre's_formula` · `Periodic_function` · `Polar_sine`
- **2.5 Barycentric coordinate system** → `Ceva's_theorem` · `Menelaus's_theorem` ● ◐ · `Linear_interpolation` · `Convex_combination` · `Trilinear_coordinates` · `Routh's_theorem` · `Stewart's_theorem` · [[Simplex]] ● ▪
### Movement 3 — Circles, polygons & tilings
<!-- SECTIONSIMS:BEGIN g34 2026-09-19 - microsims the articles linked here play; generated by _tools/generate/g34_portal_section_sims.py; do not hand-edit inside -->
*Microsims from the articles this section links:*
<div class="wt-simrow">
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/inscribed_angle_microsim.html" data-title="inscribed angle"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Tessellation_microsim.html" data-title="Tessellation"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Simple_polygon_microsim.html" data-title="Simple polygon"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/hexagonal_tiling_microsim.html" data-title="Hexagonal tiling"></div>
</div>
<!-- SECTIONSIMS:END -->
From the one curve with every symmetry to the polygons that approximate it and the tilings that cover the plane with them — plus the oldest question in the subject: when do two shapes have the same area?
*Outline sections:* Euclidean plane geometry › Conic section › Circle (14 sub-entries), Polygon, Quadrilateral, Tessellation, Curve of constant width, Frieze group, Wallpaper group · Symmetry, shape and pattern · *Books:* Euclid III–IV, I.35–45 (B13/B16) · Africk 3, 6–7 (B01) · Coxeter–Greitzer 2–3 (B19) · Petrunin 9, 20 (B02) · Hilbert IV (B17) · *three.js:* Geometries (CircleGeometry, RingGeometry, ShapeGeometry, ExtrudeGeometry) · Extras (Shape, ShapeUtils, Earcut, EllipseCurve) · Objects (InstancedMesh) · *Wave 1.*
| # | Station | Sim (three.js) | Explanatory spine |
|---|---|---|---|
| 3.1 | `Circle` | *build target* | Every chord theorem is one theorem: slide P from inside the circle to outside and the intersecting-chords product flows unbroken into the secant and tangent versions. The power of the point — negative inside, zero on the rim, positive beyond. |
| 3.2 | `Inscribed_angle` | `https://wikitube-3d-microsims.netlify.app/inscribed_angle_microsim.html` | The arc decides, not the vertex: run the vertex round the circle and the angle sits still at half the central angle. Rest the chord on a diameter and it locks at 90° (Thales); push the vertex across the chord and it jumps to the supplement. |
| 3.3 | `Polygon` | *build target* | n from 3 to 60: the interior angles sum to (n − 2)·180° because the fan of n − 2 triangles is drawn for you — the same ear-clipping three.js runs inside ShapeGeometry. Skip vertices for the star polygons {n/k}; push n up and perimeter ÷ diameter closes on π, as Archimedes did with 96 sides. |
| 3.4 | `Wallace–Bolyai–Gerwien_theorem` | *build target* | Equal area means scissors-equal: watch a triangle cut and hinged into a rectangle, then a square, then any polygon of the same area. Then the failure in space — a cube and a regular tetrahedron of equal volume can never trade pieces, and the Dehn-invariant readout shows why. |
| 3.5 | [[Tessellation]] | `https://wikitube-3d-microsims.netlify.app/Tessellation_microsim.html` | Only three regular polygons tile, and one vertex shows why: drop n-gons round a point until the angles reach 360° or overshoot. Then the eight semiregular tilings, the seventeen wallpaper groups as generator toggles on one motif, and a Penrose patch that never repeats. |
| 3.6 | `Curve_of_constant_width` | *build target* | A Reuleaux triangle rolls between two plates and the top plate never bobs; its cousin in space, the Meissner body, does the same under glass. Every such curve of width w has perimeter πw — Barbier's theorem, shown here by dropping Buffon's noodles on ruled paper. |
**Cross-reference**
| # | three.js (docs classes · examples) | Books | Outline | Tier | Feeds → · ← Fed by |
|---|---|---|---|---|---|
| 3.1 | `EllipseCurve`, `CircleGeometry`, `RingGeometry`, `Ray`, `Vector2` | B16 III.35–37; B19 ch. 2; B02 ch. 9; B01 ch. 7 | Conic section › Circle (Monge's theorem, Power center, Circle points segments proof, Mrs. Miniver's problem, Annulus, Steiner chain …) · Measurements › Circumference, Diameter · General concepts › Pi · Vector spaces › Secant line, Circular sector · Plane › Holditch's theorem, Sangaku | live | → 3.2, 5.1, 10.5 · ← 2.1 |
| 3.2 | `ArcCurve`, `EllipseCurve`, `CSS2DRenderer (angle labels)`, `DragControls` | B16 III.20–22, III.31; B02 ch. 9; B01 ch. 7 | foundations › Angle › Central angle, Inscribed angle · Circle › Thales' theorem, Concyclic, Ptolemaios' theorem | live | → 3.3 · ← 1.3, 3.1 |
| 3.3 | `Shape`, `ShapeGeometry`, `ShapeUtils (triangulateShape, area, isClockWise)`, `Earcut`, `CircleGeometry (segments)`, `LineLoop` · `webgl_geometry_shapes` | B16 IV.10–16, XII.2; B01 ch. 3, 7; B19 ch. 3, quadrangles | Euclidean plane geometry › Polygon (Star polygon, Pick's theorem, Polygon triangulation …), Quadrilateral (9 sub-entries), Trapezoid · n-dimensional › Lattice › Ehrhart polynomial · History › Measurement of a Circle | live | → 3.4, 6.2, 14.2 · ← 1.6, 3.2 |
| 3.4 | `ShapeGeometry (pieces)`, `Group (hinge pivots)`, `Matrix4`, `ExtrudeGeometry` · `webgl_geometry_extrude_shapes` | B17 ch. IV; B02 ch. 20; B16 I.35–45, II.14; B01 ch. 6 | Polygon › Shape dissection, Bolyai–Gerwien theorem · Polyhedron › Hilbert's third problem | live | → 7.1, 7.2 · ← 3.3 |
| 3.5 | `InstancedMesh (setMatrixAt)`, `Shape`, `Matrix4 (group generators)`, `ExtrudeGeometry` · `webgl_instancing_performance` | B16 IV; B03 ch. 7 | Euclidean plane geometry › Tessellation (Prototile, Aperiodic tiling, Wang tile, Penrose tiling), Frieze group, Wallpaper group · Symmetry, shape and pattern › Pattern, Translational symmetry · n-dimensional › Uniform tessellation, Quasicrystal | live | → 4.6, 7.5, 10.3 · ← — |
| 3.6 | `Shape (absarc)`, `ExtrudeGeometry`, `ConvexGeometry`, `Box3 (width probe)`, `Box2` · `webgl_geometry_convex` | — (no book anchor: the gap is named) | Euclidean plane geometry › Curve of constant width (Reuleaux triangle) · Circle › Isoperimetric theorem · Types › Integral geometry | live | → 11.4 · ← — |
**See-also variants** (the sim reused under different keys · ● legacy three.js live · ◐ p5.js published · ▪ article on site · a variant named under two stations extends whichever sim ships first)
- **3.1 Circle** → `Power_of_a_point` · `Intersecting_chords_theorem` ● ◐ · `Tangent–secant_theorem` ● · `Intersecting_secants_theorem` ◐ · `Radical_axis` · `Power_center_(geometry)` · `Pi` · `Circumference` · `Diameter` · `Area_of_a_circle` · `Annulus_(mathematics)` · `Circular_sector` · `Secant_line` · `Measurement_of_a_Circle` · `Problem_of_Apollonius` ● · `Apollonian_circles` ● · `Monge's_theorem` · `Moser's_circle_problem` · `Mrs._Miniver's_problem` · `Holditch's_theorem` · `Sangaku`
- **3.2 Inscribed angle** → `Thales's_theorem` ● ◐ · `Central_angle` ● ◐ · `Cyclic_quadrilateral` · `Ptolemy's_theorem` ● ◐ · `Concyclic_points` · `Simson_line`
- **3.3 Polygon** → `Regular_polygon` · `Star_polygon` ● · `Pentagram` ● · `Convex_polygon` ● · [[Simple_polygon]] ● ▪ · `Constructible_polygon` · `Pick's_theorem` · `Ehrhart_polynomial` · `Quadrilateral` · `Parallelogram` · `Rectangle` · `Square` · `Rhombus` · `Kite_(geometry)` · `Trapezoid` · `Isosceles_trapezoid` · `Cyclic_quadrilateral` · `Tangential_quadrilateral` · `Bicentric_quadrilateral` · `Equidiagonal_quadrilateral` · `Orthodiagonal_quadrilateral` · `Brahmagupta's_formula` · `Bretschneider's_formula` · `Varignon's_theorem`
- **3.4 Wallace–Bolyai–Gerwien theorem** → `Dissection_problem` · `Hinged_dissection` · `Tangram` · `Hilbert's_third_problem` · `Dehn_invariant`
- **3.5 Tessellation** → `Euclidean_tilings_by_convex_regular_polygons` ● · `Triangular_tiling` ● · `Square_tiling` ● · [[Hexagonal_tiling]] ● ▪ · `Uniform_tiling` · `Wallpaper_group` · `Frieze_group` · `Translational_symmetry` · `Pattern` · `Penrose_tiling` · `Aperiodic_tiling` · `Wang_tile` · `Prototile` · `Quasicrystal` · `Einstein_problem`
- **3.6 Curve of constant width** → `Reuleaux_triangle` · `Reuleaux_tetrahedron` · `Barbier's_theorem` · `Isoperimetric_inequality` · `Integral_geometry` · `Buffon's_needle_problem`
## Part Two — Coordinates & equations
Descartes' trade: give every point an address and every figure becomes an equation. Motions become matrices; the conics become one family; polynomials start drawing shapes no compass could.
### Movement 4 — Coordinates, vectors & transformations
<!-- SECTIONSIMS:BEGIN g34 2026-09-19 - microsims the articles linked here play; generated by _tools/generate/g34_portal_section_sims.py; do not hand-edit inside -->
*Microsims from the articles this section links:*
<div class="wt-simrow">
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Rotation.html" data-title="Rotation"></div>
<div class="wt-sim" data-src="https://editor.p5js.org/sciencenibber/full/zz96yaEXE" data-title="Cartesian coordinate system"></div>
</div>
<!-- SECTIONSIMS:END -->
The moment a motion becomes a matrix — and the ladder of groups (rigid, similar, affine) that decides which properties of a figure are geometry and which are accidents of where it sits.
*Outline sections:* Vectors · Vector spaces and complex dimensions · Symmetry, shape and pattern · foundations › Congruence, Shear mapping · General concepts › Chirality · Other geometries › Affine transformation · *Books:* Siceloff–Wentworth–Smith (B20) · Coxeter–Greitzer 4 (B19) · Petrunin 14, 18 (B02) · Hitchman 2–4 (B03) · *three.js:* Math (Vector2/3/4, Matrix3, Matrix4, Quaternion, Euler, Spherical, Cylindrical) · Core (Object3D) · Helpers (AxesHelper, GridHelper, PolarGridHelper) · Addons (TransformControls, Reflector) · *Wave 2.*
| # | Station | Sim (three.js) | Explanatory spine |
|---|---|---|---|
| 4.1 | `Analytic_geometry` | *build target* | Geometry becomes algebra on a live grid: drag a line and read ax + by + c = 0 change; drag a plane and read its normal form; flip one point among Cartesian, polar, cylindrical and spherical readouts and see which coordinate lines bend. |
| 4.2 | `Euclidean_vector` | *build target* | Dot product as shadow, cross product as oriented area: two dragged arrows, the projection of one on the other, and the parallelogram whose area vector stands square to both — swap the order and it flips. |
| 4.3 | `Transformation_matrix` | *build target* | Sixteen numbers, one cube: type into a Matrix4 and the unit cube slides, stretches, shears and turns; compose two in both orders and the cubes land in different places. The determinant reads out as signed volume — and changes sign when the cube turns inside out. |
| 4.4 | `Rotation_(mathematics)` | `https://wikitube-3d-microsims.netlify.app/Rotation.html` | Euler angles break and quaternions do not: steer a gimbal to 90° pitch and watch two rings merge into one axis, then run the same turn as a quaternion slerp — the short great-circle arc, drawn on the sphere of orientations. |
| 4.5 | `Reflection_(mathematics)` | *build target* | Everything rigid is mirrors: two real mirrors at angle θ turn you through 2θ; two parallel ones slide you; three are enough for any motion of the plane. Count your images in the kaleidoscope and the dihedral group is standing in the room. |
| 4.6 | `Symmetry_group` | *build target* | Which motions leave it looking the same? Pick a solid, light its rotation axes as coloured rods and count — 12, 24, 60; add the mirrors and the counts double. Then park one point inside three mirrors and the Platonic and Archimedean solids grow out of the kaleidoscope — the snubs excepted, which need a half-step of their own. |
**Cross-reference**
| # | three.js (docs classes · examples) | Books | Outline | Tier | Feeds → · ← Fed by |
|---|---|---|---|---|---|
| 4.1 | `GridHelper`, `PolarGridHelper`, `AxesHelper`, `Spherical`, `Cylindrical`, `Vector3 (setFromSpherical, setFromCylindrical)`, `Plane`, `BoxLineGeometry` · `webgl_helpers` | B20 loci and equations; the straight line; polar coordinates; point, plane and line | Types › Analytic geometry · Vector spaces › Complex plane, Polar coordinate system · n-dimensional › Euclidean distance · foundations › Locus · History › History of analytic geometry, of the Cartesian coordinate system | live | → 4.2, 5.1, 11.1 · ← 1.2, 2.3 |
| 4.2 | `Vector3 (dot, cross, projectOnVector, angleTo)`, `Vector2`, `ArrowHelper` | B20 solid analytic geometry; B05 ch. 3 | Vectors (Dot product, Norm, Position vector, Scalar multiplication, Vector addition, Zero vector) · Vector spaces › Orthogonal · n-dimensional › Parallelogram law | live | → 4.3, 12.1, 15.2 · ← 2.3, 4.1 |
| 4.3 | `Matrix4 (compose, decompose, multiply, determinant, makeShear)`, `Matrix3`, `Matrix2`, `Object3D (matrix, matrixAutoUpdate)`, `BoxGeometry`, `AxesHelper`, `TransformControls` · `misc_controls_transform` | B20 transformation of coordinates; B02 ch. 14 | foundations › Shear mapping, Congruence › Translation · Other geometries › Affine geometry › Affine space, Affine transformation | live | → 4.4, 9.3, 16.5 · ← 4.2 |
| 4.4 | `Euler (order)`, `Quaternion (setFromEuler, setFromAxisAngle, slerp, multiply)`, `QuaternionLinearInterpolant`, `ArcballControls`, `TorusGeometry (gimbal rings)` · `webgl_math_orientation_transform`, `misc_controls_arcball` | B19 ch. 4; B03 ch. 6, rotations of the sphere | foundations › Congruence › Rotation, Coordinate rotations and reflections · General concepts › Angular velocity | live | → 4.6, 8.1, 8.5 · ← 2.4, 4.3 |
| 4.5 | `Reflector`, `Plane`, `Matrix4 (reflection)`, `Group` · `webgl_mirror` | B19 ch. 4, reflection; genealogy of transformations; B03 ch. 3 | foundations › Congruence › Reflection, Glide reflection · General concepts › Chirality (Handedness, Relative direction, Mirror image) · Symmetry › Isometry · Types › Transformation geometry | live | → 4.6, 10.5 · ← 1.4 |
| 4.6 | `Quaternion (group elements)`, `InstancedMesh`, `Reflector`, `PolyhedronGeometry`, `ArrowHelper`, `CylinderGeometry (axes)` | B19 ch. 4; B03 ch. 4, geometry as a group | Symmetry, shape and pattern (Symmetry, Crystal system, Frieze group, Isometry, Lattice, Point group, Point groups in two and three dimensions, Space group, Symmetry group …) · n-dimensional › Coxeter group, Root system · Types › Klein geometry · History › Erlangen program | live | → 6.2, 6.3, 8.4 · ← 3.5, 4.4, 4.5 |
**See-also variants** (the sim reused under different keys · ● legacy three.js live · ◐ p5.js published · ▪ article on site · a variant named under two stations extends whichever sim ships first)
- **4.1 Analytic geometry** → [[Cartesian_coordinate_system]] ▪ · `Polar_coordinate_system` · `Spherical_coordinate_system` · `Cylindrical_coordinate_system` · `Coordinate_system` · `Euclidean_distance` · `Complex_plane` · `Locus_(mathematics)`
- **4.2 Euclidean vector** → `Dot_product` · `Cross_product` · `Norm_(mathematics)` · `Position_(geometry)` · `Scalar_multiplication` · `Triple_product` · `Parallelogram_law` · [[Orthogonality]] ▪
- **4.3 Transformation matrix** → `Affine_transformation` · `Shear_mapping` · `Scaling_(geometry)` · `Translation_(geometry)` · `Linear_map` · `Determinant` · `Rotation_matrix` · `Identity_matrix` ●
- **4.4 Rotation (mathematics)** → `Euler_angles` · `Gimbal_lock` · `Quaternion` ● · `Quaternions_and_spatial_rotation` · `Rotation_matrix` · `Axis–angle_representation` · `Rodrigues'_rotation_formula` · `Euler's_rotation_theorem` · `Spherical_linear_interpolation` · `Angular_velocity`
- **4.5 Reflection (mathematics)** → `Isometry` · `Glide_reflection` · `Mirror_image` · `Chirality_(mathematics)` · `Handedness` · `Body-relative_direction` · `Rotations_and_reflections_in_two_dimensions` · `Euclidean_group` · `Improper_rotation` · `Screw_axis` · `Transformation_geometry`
- **4.6 Symmetry group** → `Symmetry` · `Octahedral_symmetry` ● ◐ · `Icosahedral_symmetry` · `Tetrahedral_symmetry` · `Point_group` · `Point_groups_in_two_dimensions` · `Point_groups_in_three_dimensions` · `Dihedral_group` · `Wythoff_construction` ● · `Coxeter_group` · `Crystal_system` · `Space_group` · `Erlangen_program` · `Klein_geometry` · `Lie_group` ●
### Movement 5 — Conics, quadrics & algebraic curves
<!-- SECTIONSIMS:BEGIN g34 2026-09-19 - microsims the articles linked here play; generated by _tools/generate/g34_portal_section_sims.py; do not hand-edit inside -->
*Microsims from the articles this section links:*
<div class="wt-simrow">
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/solar/Solar_System.html?view=orbits&embed=1" data-title="The orbits (Solar System explorer)"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/matter/Kepler's_laws_of_planetary_motion.html" data-title="Kepler's laws of planetary motion"></div>
</div>
<!-- SECTIONSIMS:END -->
Degree two is one family seen from different angles; from degree three on, polynomials draw ovals, nodes and cusps, carry a group law, and hide exactly twenty-seven lines on a surface.
*Outline sections:* Euclidean plane geometry › Conic section (8 sub-entries) · n-dimensional › Quadric (6 sub-entries) · Types › Algebraic, Birational, Complex, Enumerative, Toric, Tropical geometry · *Books:* Siceloff–Wentworth–Smith (B20) · Coxeter–Greitzer 6 (B19) · Rörig (B11) · Milne 2–6 (B06) · Clader–Ross (B07) · *three.js:* Geometries (ConeGeometry, LatheGeometry) · Materials (clippingPlanes, stencil) · Math (Ray, Matrix3) · Addons (ParametricGeometry, MarchingCubes, Refractor) · *Wave 2.*
| # | Station | Sim (three.js) | Explanatory spine |
|---|---|---|---|
| 5.1 | `Conic_section` | *build target* | A real double cone and a real cutting plane, capped where it slices: tilt the plane past the cone's slant and the cross-section runs circle → ellipse → parabola → hyperbola. Drop in the two Dandelin spheres and the foci appear exactly where they touch the plane. |
| 5.2 | `Focus_(geometry)` | *build target* | One slider, eccentricity: rays leave a focus and the mirror does the rest — an ellipse sends them all to the other focus, a parabola sends them out parallel, a hyperbola fans them as if from a focus behind the glass. Whispering gallery, satellite dish and Cassegrain telescope in one scene. |
| 5.3 | `Quadric` | *build target* | One quadratic form, three signs: slide the eigenvalues and an ellipsoid necks down into a one-sheet hyperboloid, pinches to a cone and splits in two. The one-sheet stage shows its two families of straight lines — it is a cooling tower because it is ruled. |
| 5.4 | `Algebraic_curve` | *build target* | A polynomial and its zero set: slide the coefficients of y² = x³ + ax + b and an oval buds off, reattaches as a node, sharpens to a cusp. On the smooth ones, add two points by chord and tangent — the group law of an elliptic curve, done with a ruler. |
| 5.5 | `Algebraic_variety` | *build target* | Ideals in, shapes out: choose polynomials and their common zeros appear in space. Multiply two and the varieties unite; add one and they intersect — two quadrics meet in a twisted cubic plus a stray line. The dictionary of Hilbert's Nullstellensatz, run as a machine. |
| 5.6 | `Cubic_surface` | *build target* | Twenty-seven straight lines on one curved surface: the Clebsch cubic, with all 27 real and each one highlightable. Slide toward Cayley's four-node cubic and watch lines collide in bundles as the surface pinches — a count that survives because it is kept with multiplicity. |
**Cross-reference**
| # | three.js (docs classes · examples) | Books | Outline | Tier | Feeds → · ← Fed by |
|---|---|---|---|---|---|
| 5.1 | `ConeGeometry`, `Plane (as Material.clippingPlanes, with a stencil cap)`, `SphereGeometry`, `PlaneHelper`, `ClippingGroup` · `webgl_clipping_stencil`, `webgl_clipping` | B20 parabola; ellipse; hyperbola; conics in general; B19 ch. 6; B11 conics | Euclidean plane geometry › Conic section (Focus, Circle, Eccentricity, Ellipse, Hyperbola, Parabola, Matrix representation of conic sections, Dandelin spheres) · 3-dimensional › Cross section, Right circular cone | live | → 5.2, 5.3, 9.1 · ← 3.1, 4.1 |
| 5.2 | `EllipseCurve`, `LatheGeometry (dish)`, `Ray`, `Vector3 (reflect)`, `ArrowHelper`, `Refractor (lens variant)` · `webgl_refraction` | B20 focal properties of the parabola, ellipse and hyperbola; B19 ch. 6, focus and directrix | Conic section › Focus, Ellipse (Semi-major axis), Hyperbola, Parabola · 3-dimensional › Paraboloid, Parabolic microphone, Parabolic reflector · Trigonometric functions › Asymptotes | live | → 5.3 · ← 5.1 |
| 5.3 | `ParametricGeometry`, `Matrix3 (quadratic form)`, `LineSegments (rulings)`, `MarchingCubes (implicit alternative)` | B20 surfaces; B11 quadrics | n-dimensional › Quadric (Hypersphere, Spheroid, Ellipsoid, Hyperboloid, Paraboloid, Cone) · 3-dimensional › Hyperboloid, Paraboloid, spheroid, ellipsoid | live | → 5.6, 12.1 · ← 5.1, 5.2 |
| 5.4 | `LineSegments (marching-squares contour)`, `Points`, `Raycaster (picking)`, `Vector2` · `webgl_interactive_raycasting_points` | B06 ch. 2, 4; B07 Affine AG: Smoothness; B20 higher plane curves | Types › Algebraic geometry · Lists › List of curves | live | → 5.5, 5.6 · ← 1.6 |
| 5.5 | `MarchingCubes`, `BufferGeometry (baked presets)`, `TubeGeometry (twisted cubic)`, `Plane (clipping box)` · `webgl_marchingcubes` | B06 ch. 2–3, 5–6; B07 Varieties and Ideals; Nullstellensatz; Dimension; Projective Varieties | Types › Algebraic geometry, Birational geometry, Complex geometry, Toric geometry, Tropical geometry, Enumerative geometry · History › History of algebraic geometry | live+bake | → 5.6, 12.6 · ← 5.4, 9.3 |
| 5.6 | `BufferGeometry (offline marching-cubes bake)`, `LineSegments`, `Plane (spherical clip)`, `Mesh` | B06 ch. 6; B07 Culminating Topics | Types › Algebraic geometry, Enumerative geometry · Projective plane › Roman surface | bake | → 13.3 · ← 5.3, 5.4, 5.5 |
**See-also variants** (the sim reused under different keys · ● legacy three.js live · ◐ p5.js published · ▪ article on site · a variant named under two stations extends whichever sim ships first)
- **5.1 Conic section** → `Dandelin_spheres` · `Eccentricity_(mathematics)` · `Matrix_representation_of_conic_sections` · `Five_points_determine_a_conic` · `Cross_section_(geometry)` · `Cone` ● · `Locus_(mathematics)`
- **5.2 Focus (geometry)** → `Ellipse` · `Parabola` · `Hyperbola` · `Semi-major_and_semi-minor_axes` · `Asymptote` · `Parabolic_reflector` · `Parabolic_microphone` · `Cassegrain_reflector` · `Whispering_gallery` · [[Kepler's_laws_of_planetary_motion]] ● ▪
- **5.3 Quadric** → `Ellipsoid` · `Spheroid` · `Hyperboloid` · `Paraboloid` · `Ruled_surface` · `Hyperboloid_structure` · `N-sphere`
- **5.4 Algebraic curve** → `Elliptic_curve` · `Bézout's_theorem` · `Plane_cubic_curve` · `Folium_of_Descartes` · `Lemniscate` ● · `Cassini_oval` · `Singular_point_of_a_curve` · `Cusp_(singularity)` · [[Algebraic_geometry]] ▪
- **5.5 Algebraic variety** → `Affine_variety` · `Projective_variety` · `Hilbert's_Nullstellensatz` · `Zariski_topology` · `Twisted_cubic` · `Dimension_of_an_algebraic_variety` · `Singular_point_of_an_algebraic_variety` · `Blowing_up` · `Birational_geometry` · `Complex_geometry` · `Toric_variety` · `Tropical_geometry` · `Enumerative_geometry`
- **5.6 Cubic surface** → `Algebraic_surface` · `Clebsch_surface` · `Cayley's_nodal_cubic_surface` · `Kummer_surface` · `Barth_surface` · `Roman_surface`
## Part Three — Solids & space
Euclid's last three books and what came after: the five regular solids, the volumes found by slicing, and the same questions asked again one dimension up.
### Movement 6 — Polyhedra
<!-- SECTIONSIMS:BEGIN g34 2026-09-19 - microsims the articles linked here play; generated by _tools/generate/g34_portal_section_sims.py; do not hand-edit inside -->
*Microsims from the articles this section links:*
<div class="wt-simrow">
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/geometry/Polyhedron.html" data-title="Polyhedron"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/platonic_solid.html" data-title="platonic solid"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/truncation.html" data-title="truncation"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Stellation_microsim.html" data-title="Stellation"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/jsolids.html" data-title="jsolids"></div>
</div>
<!-- SECTIONSIMS:END -->
Flat faces, straight edges, and a bookkeeping law — V − E + F = 2 — that turns out to be the first theorem of topology. Five regular solids, thirteen semiregular, ninety-two with regular faces, and the stars that break the count.
*Outline sections:* 3-dimensional Euclidean geometry › Polyhedron (17 sub-entries) · *Books:* Euclid XI Defs, XIII.13–18 (B13/B16) · Coxeter–Greitzer 6, reciprocation (B19) · *three.js:* Geometries (TetrahedronGeometry, OctahedronGeometry, DodecahedronGeometry, IcosahedronGeometry, PolyhedronGeometry, BoxGeometry, EdgesGeometry) · Addons (ConvexGeometry) · *Wave 1.*
| # | Station | Sim (three.js) | Explanatory spine |
|---|---|---|---|
| 6.1 | [[Polyhedron]] | `https://wikitube-3d-microsims.netlify.app/geometry/Polyhedron.html` | Count and it is always 2: V − E + F read live while you truncate corners, cap faces and subdivide any convex solid. Then Descartes' version — the angle missing at each vertex, summed over the whole solid, is always 720°. |
| 6.2 | `Platonic_solid` | `https://wikitube-3d-microsims.netlify.app/platonic_solid.html` | Why only five: fit q regular p-gons round a corner and the angles must total under 360° — five pairs (p, q) survive. All five sit in one sphere, as in Euclid's last book, and each melts into its dual through the shared midsphere. |
| 6.3 | `Archimedean_solid` | `https://wikitube-3d-microsims.netlify.app/truncation.html` | One slider from a Platonic solid to its dual passes through every Archimedean of the family — truncate, rectify, truncate again. A second slider pushes the faces apart; a third twists them, and the two snubs appear in left- and right-handed forms. |
| 6.4 | `Dual_polyhedron` | *build target* | Polar reciprocation in the midsphere: every vertex becomes a face, every face a vertex, and paired edges cross at right angles. Run it on the thirteen Archimedeans and the Catalan solids fall out — the shapes of dice and of garnet crystals. |
| 6.5 | `Stellation` | `https://wikitube-3d-microsims.netlify.app/Stellation_microsim.html` | Extend the face planes until they meet again: the dodecahedron stellates three times into the Kepler–Poinsot stars, the icosahedron fifty-nine. Euler's count seems to break (V − E + F = −6) until each face is counted by how many times it wraps. |
| 6.6 | `Johnson_solid` | `https://wikitube-3d-microsims.netlify.app/jsolids.html` | Most of the ninety-two by recipe — pyramids, cupolae and rotundae glued to prisms, antiprisms and cut-down Platonic and Archimedean solids, each move named as you make it — and the nine elementary ones that no gluing produces. The near-misses show how close regular faces can come to closing up — and still fail by a fraction of a degree. |
**Cross-reference**
| # | three.js (docs classes · examples) | Books | Outline | Tier | Feeds → · ← Fed by |
|---|---|---|---|---|---|
| 6.1 | `PolyhedronGeometry`, `EdgesGeometry`, `BufferGeometry (index)`, `ConvexGeometry` · `webgl_geometry_convex` | B16 XI Defs | 3-dimensional › Polyhedron (Defect, Dihedral angle, Prism, Prismatoid, Honeycomb, Pyramid, Parallelepiped, Tetrahedron, Platonic solid, Archimedean solid, Kepler–Poinsot, Johnson solid, Uniform polyhedron, Polyhedral compound, Hilbert's third problem, Deltahedron, Surface normal) | live | → 6.2, 13.3, 13.4, 15.1 · ← 1.3 |
| 6.2 | `TetrahedronGeometry`, `BoxGeometry`, `OctahedronGeometry`, `DodecahedronGeometry`, `IcosahedronGeometry`, `EdgesGeometry`, `BufferGeometry (morphAttributes)` · `webgl_geometries`, `webgl_geometry_cube` | B16 XIII.13–18; B13 XIII | Polyhedron › Platonic solid, Tetrahedron (Heronian tetrahedron) · n-dimensional › Schläfli symbol | live | → 6.3, 6.4, 8.3 · ← 3.3, 4.6, 6.1 |
| 6.3 | `PolyhedronGeometry (custom vertices, indices)`, `ConvexGeometry (re-hull per frame)`, `EdgesGeometry` · `webgl_geometry_convex` | — (no book anchor: the gap is named) | Polyhedron › Archimedean solid, Uniform polyhedron | live | → 6.4, 7.4 · ← 4.6, 6.2 |
| 6.4 | `PolyhedronGeometry`, `ConvexGeometry`, `Plane (polar planes)`, `EdgesGeometry` | B19 ch. 6, reciprocation; B11 duality | Polyhedron › Platonic solid, Archimedean solid (their duals) | live | → 9.6, 14.3 · ← 6.2, 6.3 |
| 6.5 | `Plane (face-plane arrangement)`, `ConvexGeometry (cells)`, `BufferGeometry (groups)`, `EdgesGeometry` · `webgl_clipping_intersection` | — (no book anchor: the gap is named) | Polyhedron › Kepler–Poinsot polyhedra, Polyhedral compound · Polygon › Star polygon | live+bake | → 8.3 · ← — |
| 6.6 | `PolyhedronGeometry (baked coordinates)`, `EdgesGeometry`, `Group (attach)` | — (no book anchor: the gap is named) | Polyhedron › Johnson solid, Deltahedron, Prismatoid | bake | → 7.1 · ← — |
**See-also variants** (the sim reused under different keys · ● legacy three.js live · ◐ p5.js published · ▪ article on site · a variant named under two stations extends whichever sim ships first)
- **6.1 Polyhedron** → `Euler_characteristic` ● · `Angular_defect` · `Dihedral_angle` · `Vertex_figure` · `Net_(polyhedron)` ● · `Convex_polytope` · `Uniform_polyhedron` · `Deltahedron` · [[Polytope]] ▪
- **6.2 Platonic solid** → `Tetrahedron` ● · `Cube` ● · `Octahedron` ● · `Dodecahedron` ● · `Regular_dodecahedron` · `Icosahedron` ● · `Regular_icosahedron` · `Heronian_tetrahedron`
- **6.3 Archimedean solid** → `Truncated_tetrahedron` ● · `Cuboctahedron` ● · `Truncated_cube` ● · `Truncated_octahedron` ● · `Rhombicuboctahedron` ● · `Truncated_cuboctahedron` ● · `Snub_cube` · `Icosidodecahedron` ● · `Truncated_dodecahedron` ● · `Truncated_icosahedron` ● · `Rhombicosidodecahedron` · `Truncated_icosidodecahedron` ● · `Snub_dodecahedron` · `Truncation_(geometry)` · `Rectification_(geometry)` · `Conway_polyhedron_notation`
- **6.4 Dual polyhedron** → `Catalan_solid` · `Rhombic_dodecahedron` · `Rhombic_triacontahedron` · `Disdyakis_dodecahedron` ● · `Disdyakis_triacontahedron` ● · `Pentagonal_hexecontahedron` ● · `Triakis_tetrahedron` · `Triakis_octahedron` · `Triakis_icosahedron` · `Tetrakis_hexahedron` · `Pentakis_dodecahedron` · `Midsphere`
- **6.5 Stellation** → `Kepler–Poinsot_polyhedron` ● · `Small_stellated_dodecahedron` ● · `Stellated_octahedron` ● · `Great_dodecahedron` · `Polytope_compound` · `Compound_of_five_cubes` ● · `Compound_of_two_icosahedra` · `The_Fifty-Nine_Icosahedra`
- **6.6 Johnson solid** → `Near-miss_Johnson_solid` ● · `Gyrobifastigium` ● · `Pentagonal_cupola` ● · `Pentagonal_bipyramid` ● · `Triangular_bipyramid` ● · `Snub_disphenoid` ● · `Cupola_(geometry)` · `Square_cupola` · `Bipyramid` · `Square_pyramid` · `Pentagonal_pyramid` · `Császár_polyhedron` ● · `Szilassi_polyhedron` ● · `Toroidal_polyhedron`
### Movement 7 — Round solids, volume & packing
<!-- SECTIONSIMS:BEGIN g34 2026-09-19 - microsims the articles linked here play; generated by _tools/generate/g34_portal_section_sims.py; do not hand-edit inside -->
*Microsims from the articles this section links:*
<div class="wt-simrow">
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/sphere_microsim.html" data-title="sphere"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Honeycomb_geometry_microsim.html" data-title="Honeycomb geometry"></div>
</div>
<!-- SECTIONSIMS:END -->
Volume before calculus: Euclid's exhaustion, Cavalieri's slices and Archimedes' tombstone — then the opposite problem, how tightly the same solids can be packed into space.
*Outline sections:* 3-dimensional › Cavalieri's principle, Cross section, Napkin ring problem, Pappus's centroid theorem, spheroid, ellipsoid, Crystal, Soddy's hexlet, Sphericon · n-dimensional › Packing, Lattice, Honeycomb · *Books:* Euclid XI–XII (B13/B16) · *three.js:* Geometries (SphereGeometry, CylinderGeometry, ConeGeometry, CapsuleGeometry, IcosahedronGeometry) · Materials (clippingPlanes) · Objects (InstancedMesh) · Addons (LoftGeometry) · *Wave 2.*
| # | Station | Sim (three.js) | Explanatory spine |
|---|---|---|---|
| 7.1 | `Prism_(geometry)` | *build target* | A prism is three pyramids: slice a triangular prism into three tetrahedra of equal volume and the ⅓ in every cone and pyramid formula stops being a mystery. Twist the top face and the prism becomes an antiprism; shrink it and you have a frustum. |
| 7.2 | `Cavalieri's_principle` | *build target* | Equal slices, equal volumes: a stack of coins sheared sideways keeps its volume. Then the classic — at every height a hemisphere's cross-section matches a cylinder's minus a cone's, the two areas drawn side by side, and the sphere's volume falls out with no calculus at all. |
| 7.3 | `Sphere` | `https://wikitube-3d-microsims.netlify.app/sphere_microsim.html` | Archimedes' tombstone: a sphere in its cylinder. Slice both with the same two planes and the bands have equal area; sphere to cylinder is 2 : 3 in volume and in surface. Then how a computer builds one — UV sphere, icosphere, cube-sphere — and where each one pinches. |
| 7.4 | `Geodesic_polyhedron` | *build target* | IcosahedronGeometry's detail slider is Buckminster Fuller's frequency: subdivide the faces, push the new vertices out to the sphere, and count twelve five-valent vertices that no refinement removes. Take the dual and get the Goldberg polyhedra of footballs and virus shells. |
| 7.5 | `Honeycomb_(geometry)` | `https://wikitube-3d-microsims.netlify.app/Honeycomb_geometry_microsim.html` | Which solids fill space with no gaps? Cubes; Kelvin's truncated octahedra; the rhombic dodecahedra that cap a bee's cell — and the Weaire–Phelan foam that beat Kelvin's century-old record. A clipping plane opens each packing to show the interior. |
| 7.6 | `Sphere_packing` | *build target* | Twelve spheres touch one — never thirteen, though the slack left over kept Newton and Gregory's argument open until 1953. Stack cannonballs two ways, read the density 74.05 %, then inflate every ball into its Voronoi cell and the honeycomb of the last station appears. |
**Cross-reference**
| # | three.js (docs classes · examples) | Books | Outline | Tier | Feeds → · ← Fed by |
|---|---|---|---|---|---|
| 7.1 | `CylinderGeometry (radialSegments = n, radiusTop)`, `ExtrudeGeometry`, `Plane (clipping)`, `Group` · `webgl_geometry_extrude_shapes` | B16 XII.7, XII.10 | Polyhedron › Prism, Prismatoid, Pyramid, Parallelepiped · Types › Solid geometry · 3-dimensional › Stereometry | live | → 7.2 · ← 3.4, 6.6 |
| 7.2 | `Plane (clipping with stencil caps)`, `SphereGeometry`, `CylinderGeometry`, `ConeGeometry`, `LoftGeometry (solid from sections)` · `webgl_clipping_stencil`, `webgpu_geometry_loft` | B16 XII.2, XII.18 | 3-dimensional › Cavalieri's principle, Cross section, Napkin ring problem · History › Measurement of a Circle | live | → 7.3, 12.2 · ← 3.4, 7.1 |
| 7.3 | `SphereGeometry (widthSegments, heightSegments, phi and theta ranges)`, `CylinderGeometry`, `IcosahedronGeometry (detail)`, `CapsuleGeometry`, `WireframeGeometry` · `webgl_geometries` | B16 XII.18 | n-dimensional › Sphere, Ball · 3-dimensional › 3-sphere, spheroid, ellipsoid, Sphericon | live | → 7.4, 8.5, 10.2 · ← 7.2 |
| 7.4 | `IcosahedronGeometry (radius, detail)`, `PolyhedronGeometry`, `EdgesGeometry`, `BufferGeometryUtils (mergeVertices)` · `webgl_geometries` | — (no book anchor: the gap is named) | Polyhedron › Uniform polyhedron (three.js-led station: the docs' PolyhedronGeometry detail parameter) | live | → 15.3 · ← 6.3, 7.3 |
| 7.5 | `InstancedMesh`, `PolyhedronGeometry`, `Plane (clipping)`, `EdgesGeometry` · `webgl_clipping`, `webgl_instancing_performance` | — (no book anchor: the gap is named) | Polyhedron › Honeycomb · n-dimensional › Packing › Honeycomb (Andreini tessellation, Uniform tessellation, Voronoi tessellation, Delaunay triangulation, Quasicrystal) · 3-dimensional › Crystal | live | → 7.6, 14.3 · ← 3.5 |
| 7.6 | `InstancedMesh (SphereGeometry)`, `Matrix4 (lattice bases)`, `ConvexGeometry (Voronoi cells)` · `webgl_instancing_dynamic` | — (no book anchor: the gap is named) | n-dimensional › Packing (Sphere packing, Kepler conjecture, Kissing number problem), Lattice (Ehrhart polynomial, Leech lattice, Minkowski's theorem) · Types › Discrete geometry, Geometry of numbers · 3-dimensional › Soddy's hexlet | live | → 14.3 · ← 7.5 |
**See-also variants** (the sim reused under different keys · ● legacy three.js live · ◐ p5.js published · ▪ article on site · a variant named under two stations extends whichever sim ships first)
- **7.1 Prism (geometry)** → `Antiprism` · `Pyramid_(geometry)` · `Frustum` · `Triangular_prism` · `Prismatoid` · `Parallelepiped` · `Cuboid` · `Solid_geometry`
- **7.2 Cavalieri's principle** → `Method_of_exhaustion` · `Napkin_ring_problem` · `Cross_section_(geometry)` · `Steinmetz_solid` · `On_the_Sphere_and_Cylinder`
- **7.3 Sphere** → `Cylinder` ● · `Cone` ● · `Spherical_cap` · `Ball_(mathematics)` · `Capsule_(geometry)` · `Spheroid` · `Ellipsoid` · `Great_circle` · `Sphericon`
- **7.4 Geodesic polyhedron** → `Goldberg_polyhedron` ● · `Truncated_icosahedron` ● · `Geodesic_dome` · `Capsid`
- **7.5 Honeycomb (geometry)** → `Weaire–Phelan_structure` ● · `Convex_uniform_honeycomb` · `Bitruncated_cubic_honeycomb` · `Rhombic_dodecahedron` · `Crystal` · `Soma_cube` ● · `Polycube` ● · `Polyomino` ● · `Prince_Rupert's_cube` ●
- **7.6 Sphere packing** → `Kissing_number` · `Kepler_conjecture` · `Close-packing_of_equal_spheres` · `Packing_problems` · `Lattice_(group)` · `Leech_lattice` · `Minkowski's_theorem` · `Geometry_of_numbers` · [[Discrete_geometry]] ▪ · `Soddy's_hexlet`
### Movement 8 — Higher dimensions
<!-- SECTIONSIMS:BEGIN g34 2026-09-19 - microsims the articles linked here play; generated by _tools/generate/g34_portal_section_sims.py; do not hand-edit inside -->
*Microsims from the articles this section links:*
<div class="wt-simrow">
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Tesseract_microsim.html" data-title="Tesseract"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/polytope4d.html" data-title="polytope4d"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Hypercube_microsim.html" data-title="Hypercube"></div>
</div>
<!-- SECTIONSIMS:END -->
Nothing about a cube needs three dimensions except our eyes. Extrude once more, project back down, and the regular solids of four dimensions — six of them — turn in the viewport.
*Outline sections:* n-dimensional Euclidean geometry (Polytope, Schläfli symbol, Regular polytope, Coxeter group, Hyperplane, Root system, Zonotope, Hypersphere) · General concepts › Four-dimensional space · *Books:* none of the twenty goes here — the Outline's own citation, Coxeter's Regular Polytopes, is the book to add · *three.js:* Math (Vector4, Matrix4, Quaternion) · Objects (LineSegments, InstancedMesh) · Geometries (TubeGeometry) · Extras (Curve) · *Wave 2.*
| # | Station | Sim (three.js) | Explanatory spine |
|---|---|---|---|
| 8.1 | `Four-dimensional_space` | *build target* | Dimension by extrusion: drag a point into a segment, the segment into a square, the square into a cube, and the cube — along an axis you cannot see — into a tesseract. Then turn it in the xw-plane, a rotation about a plane rather than an axis, and watch the shadow turn inside out. |
| 8.2 | `Tesseract` | `https://wikitube-3d-microsims.netlify.app/Tesseract_microsim.html` | Eight cubes, folded: open the tesseract into a cross of eight cubes and fold it shut through the fourth dimension, the way six squares fold into a box. The HUD counts — 16, 32, 24, 8 — follow a pattern that hands you the n-cube for free. |
| 8.3 | `Regular_4-polytope` | `https://wikitube-3d-microsims.netlify.app/polytope4d.html` | Six regular solids of the fourth dimension — 5, 8, 16, 24, 120 and 600 cells — each projected from 4-space twice over. Rotate in a hidden plane and cells swell, pass through one another and shrink; switch to a Schlegel view and look in through one cell as a window. |
| 8.4 | `Schläfli_symbol` | *build target* | Three numbers decide everything: {p, q} lays q p-gons round a vertex, {p, q, r} lays r solids round an edge. Dial them and the angle sum sorts each symbol into a finite polytope, a flat tiling or a hyperbolic one — the five Platonic solids and the six 4-polytopes are just the combinations that close. |
| 8.5 | `Hopf_fibration` | *build target* | Every point of an ordinary sphere owns a whole circle in the 3-sphere, and any two of those circles are linked exactly once. Paint a loop on the small sphere and its circles sweep out a torus of Villarceau circles in the stereographic view — nested like the layers of an onion made of rings. |
**Cross-reference**
| # | three.js (docs classes · examples) | Books | Outline | Tier | Feeds → · ← Fed by |
|---|---|---|---|---|---|
| 8.1 | `Vector4`, `Matrix4 (as a 4-D rotation)`, `LineSegments`, `BufferAttribute (needsUpdate)`, `PerspectiveCamera (second projection)` · `webgl_buffergeometry_lines` | — (no book anchor: the gap is named) | General concepts › Four-dimensional space · n-dimensional › Hyperplane, Hypersphere | live | → 8.2, 8.5 · ← 4.4 |
| 8.2 | `LineSegments`, `BufferGeometry`, `BoxGeometry (cells)`, `Vector4` | — (no book anchor: the gap is named) | n-dimensional › Polytope | live | → 8.3 · ← 8.1 |
| 8.3 | `BufferGeometry (baked 4-D vertices)`, `LineSegments`, `InstancedMesh (vertices)`, `Vector4` · `webgl_buffergeometry_lines` | — (no book anchor: the gap is named) | n-dimensional › Polytope (Schläfli symbol, Regular polytope, Regular Polytopes (book)) | bake | → 8.4 · ← 6.2, 6.5, 8.2 |
| 8.4 | `PolyhedronGeometry`, `InstancedMesh`, `ShapeGeometry` | — (no book anchor: the gap is named) | n-dimensional › Schläfli symbol, Coxeter group, Root system, Zonotope | live | → 10.3 · ← 4.6, 8.3 |
| 8.5 | `TubeGeometry (one per fibre)`, `Curve (custom getPoint)`, `Quaternion (S³ as unit quaternions)`, `InstancedMesh` | — (no book anchor: the gap is named) | 3-dimensional › 3-sphere · n-dimensional › Hypersphere | live | → 10.4, 13.5 · ← 4.4, 7.3, 8.1, 10.4 |
**See-also variants** (the sim reused under different keys · ● legacy three.js live · ◐ p5.js published · ▪ article on site · a variant named under two stations extends whichever sim ships first)
- **8.1 Four-dimensional space** → `Flatland` · `Rotations_in_4-dimensional_Euclidean_space` · `Hyperplane` · `N-sphere`
- **8.2 Tesseract** → [[Hypercube]] ● ▪ · `Cross-polytope` ● · [[Simplex]] ● ▪ · `Net_(polyhedron)` ●
- **8.3 Regular 4-polytope** → `5-cell` ● · `16-cell` ● · `24-cell` ● · `120-cell` ● · `600-cell` ● · `4-polytope` ● · `Schlegel_diagram` ● · `Regular_polytope` · `Regular_Polytopes_(book)` · `Uniform_4-polytope`
- **8.4 Schläfli symbol** → `Regular_polytope` · `Coxeter_group` · `Coxeter–Dynkin_diagram` · `Root_system` · `Zonotope` · `Uniform_tilings_in_hyperbolic_plane`
- **8.5 Hopf fibration** → `3-sphere` · `N-sphere` · `Villarceau_circles` · `Clifford_torus` · `Quaternion` ●
## Part Four — Other geometries
Let go of length and keep only straightness, and you get the geometry of the camera. Let go of the parallel postulate and you get two more consistent worlds, both of which fit inside a circle.
### Movement 9 — Projective geometry & the camera
What a photograph keeps. Lengths, angles and parallels are lost the moment you project from a point; straightness, incidence and one odd number survive — and every three.js scene passes through exactly this transformation on its way to the screen.
*Outline sections:* Other geometries › Projective geometry (22 sub-entries), Affine geometry, Finite geometry · 3-dimensional › 3D projection, Desargues' theorem · Types › Descriptive geometry, Epipolar geometry, Incidence geometry · *Books:* Rörig (B11) · Petrunin 14–15, 17 (B02) · Coxeter–Greitzer 3, 5–6 (B19) · Hilbert V–VI (B17) · *three.js:* Cameras (PerspectiveCamera, OrthographicCamera, StereoCamera, ArrayCamera, CubeCamera) · Helpers (CameraHelper) · Math (Frustum, Matrix4, Vector4) · Addons (CameraUtils, DecalGeometry) · *Wave 3.*
| # | Station | Sim (three.js) | Explanatory spine |
|---|---|---|---|
| 9.1 | `Projective_geometry` | *build target* | Stand on the railway: the rails meet on the horizon, and the horizon is the picture of a line no one can walk to. Raise and tilt the camera and a circle painted on the ground turns ellipse, parabola, hyperbola in the picture plane — one conic, seen from different seats. |
| 9.2 | `3D_projection` | *build target* | What a camera does to space: the view frustum — a truncated pyramid of everything visible — is squashed into a cube, and that squash is one 4 × 4 matrix. Watch a scene and its frustum deform together, then flatten the pyramid to a box and perspective becomes orthographic. |
| 9.3 | `Homogeneous_coordinates` | *build target* | Add one coordinate and infinity becomes ordinary: every point of the picture plane z = 1 is a line through the origin, and the lines lying flat in the floor are the points at infinity. Parallels now meet, and a translation becomes a matrix like any other. |
| 9.4 | `Desargues's_theorem` | *build target* | A theorem about flat triangles whose proof lives in space: hang two triangles in perspective from a point above the table and their sides must meet along the line where their two planes cross. Lower the slider, flatten the scene, and the collinearity is still there — now with nowhere to hide. |
| 9.5 | `Cross-ratio` | *build target* | Project four points of a line from a moving eye onto a moving screen: lengths change, ratios change, but one number — the ratio of ratios — holds to the last decimal. It is what a photograph preserves, and how you measure a field from a picture of it. |
| 9.6 | `Duality_(projective_geometry)` | *build target* | Swap the words point and line and every theorem stays true: slide a point along a line and its polar turns about a fixed pole. Pascal's hexagon inscribed in a conic and Brianchon's hexagon drawn round it are one theorem read in two languages. |
**Cross-reference**
| # | three.js (docs classes · examples) | Books | Outline | Tier | Feeds → · ← Fed by |
|---|---|---|---|---|---|
| 9.1 | `PerspectiveCamera`, `CameraHelper`, `PlaneGeometry`, `Vector3 (project, unproject)`, `RingGeometry` · `webgl_camera` | B11 projective spaces; B02 ch. 15; B19 ch. 6; B08 ch. 5 | Other geometries › Projective geometry (Line at infinity, Point at infinity, Plane at infinity, Hyperplane at infinity, Projective line, Projective plane, Projective space, Complex projective plane …) · Types › Descriptive geometry | live | → 9.2, 9.3, 9.4 · ← 5.1 |
| 9.2 | `PerspectiveCamera (fov, near, far, projectionMatrix)`, `OrthographicCamera`, `CameraHelper`, `Frustum`, `Matrix4 (makePerspective, makeOrthographic)`, `StereoCamera`, `ArrayCamera`, `CubeCamera`, `CameraUtils (frameCorners)`, `DecalGeometry (a projector box)` · `webgl_camera`, `webgl_multiple_views`, `webgl_camera_array`, `webgl_effects_stereo`, `webgl_decals`, `webgl_portal` | B11 projective transformations | 3-dimensional › 3D projection, 3D computer graphics · Types › Epipolar geometry · Connections › Computer graphics | live | → 9.3, 14.5, 15.6 · ← 9.1 |
| 9.3 | `Vector4`, `Matrix4`, `Vector3 (applyMatrix4 and its perspective divide)`, `PlaneHelper`, `LineSegments` | B11 homogeneous coordinates; B02 ch. 15 | Projective geometry › Homogeneous coordinates, Projective plane, Point at infinity · Other geometries › Affine geometry (Affine space) | live | → 5.5, 9.5, 9.6 · ← 1.2, 4.3, 9.1, 9.2 |
| 9.4 | `Plane (intersectLine)`, `Line3`, `PlaneGeometry (translucent)`, `LineSegments` | B17 ch. V; B19 ch. 3; B11 incidence theorems; B02 ch. 15 | Projective geometry › Desargues' theorem, Girard Desargues, Desarguesian plane, Pappus's hexagon theorem, Incidence · Other geometries › Finite geometry · Types › Incidence geometry | live | → 9.6 · ← 9.1 |
| 9.5 | `Line3`, `Ray`, `Vector3`, `CSS2DRenderer (readout)` | B11 cross-ratio; B19 ch. 5; B03 ch. 3 | Projective geometry › Cross-ratio, Fundamental theorem of projective geometry, Projective transformation | live | → 10.6 · ← 2.2, 9.3 |
| 9.6 | `EllipseCurve`, `Matrix3 (the conic as a matrix)`, `Vector3`, `DragControls` | B11 duality; conics; B19 ch. 6, reciprocation; B17 ch. VI | Projective geometry › Duality, Pascal's theorem, Incidence, Arc (projective geometry), Projective plane › Oval | live | → 14.3 · ← 6.4, 9.3, 9.4 |
**See-also variants** (the sim reused under different keys · ● legacy three.js live · ◐ p5.js published · ▪ article on site · a variant named under two stations extends whichever sim ships first)
- **9.1 Projective geometry** → `Perspective_(graphical)` · `Vanishing_point` · `Line_at_infinity` · `Point_at_infinity` · `Plane_at_infinity` · `Hyperplane_at_infinity` · `Projective_plane` · `Projective_space` · `Projective_line` · `Complex_projective_plane` · `Descriptive_geometry` · `Anamorphosis`
- **9.2 3D projection** → `Orthographic_projection` · `Viewing_frustum` · `Pinhole_camera_model` · `Camera_matrix` · `Graphics_pipeline` · `Clip_coordinates` · `Epipolar_geometry`
- **9.3 Homogeneous coordinates** → `Homography` · `Affine_space` · [[Affine_geometry]] ▪ · `Projective_plane` · `Point_at_infinity`
- **9.4 Desargues's theorem** → `Pappus's_hexagon_theorem` · `Girard_Desargues` · `Incidence_(geometry)` · `Incidence_geometry` · `Fano_plane` · [[Finite_geometry]] ▪
- **9.5 Cross-ratio** → `Projective_harmonic_conjugate` · `Homography` · `Camera_resectioning`
- **9.6 Duality (projective geometry)** → `Pascal's_theorem` · `Brianchon's_theorem` · `Pole_and_polar` · `Arc_(projective_geometry)` · `Oval_(projective_plane)`
### Movement 10 — Non-Euclidean & inversive geometry
<!-- SECTIONSIMS:BEGIN g34 2026-09-19 - microsims the articles linked here play; generated by _tools/generate/g34_portal_section_sims.py; do not hand-edit inside -->
*Microsims from the articles this section links:*
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/non_euclidean_geometry_microsim.html" data-title="non euclidean geometry"></div>
<!-- SECTIONSIMS:END -->
Deny the fifth postulate and nothing breaks. Two complete worlds open up — one with no parallels, one with too many — and both can be drawn, measured and tiled inside the circle-preserving geometry of inversion.
*Outline sections:* Other geometries › Non-Euclidean plane geometry, Angle excess, Hyperbolic geometry (Pseudosphere, Tractricoid), Elliptic geometry (Spherical geometry), Minkowski space, Thurston's conjecture, Möbius transformation · 3-dimensional › Stereographic projection · Types › Inversive, Conformal, Taxicab, Lie sphere geometry · *Books:* Manning (B18) · Hitchman 3–6 (B03) · Petrunin 10–13, 16–18 (B02) · Bishop 2–3 (B08) · Coxeter–Greitzer 5 (B19) · *three.js:* Geometries (SphereGeometry, LatheGeometry, CircleGeometry) · Math (Spherical, Quaternion, Matrix4) · Addons (ParametricGeometry) · Lights (PointLight shadow as a literal projection) · *Wave 3.*
| # | Station | Sim (three.js) | Explanatory spine |
|---|---|---|---|
| 10.1 | `Non-Euclidean_geometry` | `https://wikitube-3d-microsims.netlify.app/non_euclidean_geometry_microsim.html` | Three worlds, one triangle: draw it on a sphere, a plane and a saddle, and the angle sums read 190°, 180°, 170°. Grow it and the flat one stays put while the others drift further — on curved ground, size and shape are no longer independent. |
| 10.2 | `Spherical_geometry` | *build target* | Lines are great circles, so any two meet twice and there are no parallels at all. Build a triangle from three of them and its area is exactly its angle excess times R² — a triangle with three right angles covers an eighth of the globe. |
| 10.3 | `Hyperbolic_geometry` | *build target* | The hyperboloid holds the truth and the discs are its shadows: project it from the origin for Klein's model, where lines are straight but angles lie; from the south pole for Poincaré's, where angles are true and lines are arcs. Tile it with heptagons and drag the whole plane around. |
| 10.4 | `Stereographic_projection` | *build target* | A lamp at the north pole, a transparent globe, a floor: every circle on the globe casts a circle — or, if it passes through the pole, a straight line. Angles survive, areas do not; Greenland balloons as you roll the globe under the lamp. |
| 10.5 | `Inversive_geometry` | *build target* | Turn the plane inside out through a circle: lines become circles through the centre, circles stay circles, angles hold. A ring of tangent circles that closes once closes from every starting point — Steiner's porism — and Peaucellier's hinged linkage uses the same map to draw a truly straight line. |
| 10.6 | `Möbius_transformation` | *build target* | Every Möbius map of the plane is a rigid motion of a sphere hovering over it: slide the sphere for a translation, lift it to dilate, spin it on its vertical axis to rotate, tumble it for an inversion — then project back down. |
**Cross-reference**
| # | three.js (docs classes · examples) | Books | Outline | Tier | Feeds → · ← Fed by |
|---|---|---|---|---|---|
| 10.1 | `SphereGeometry`, `PlaneGeometry`, `ParametricGeometry (saddle)`, `TubeGeometry (geodesics)` | B18 ch. I; B08 ch. 2–3; B02 ch. 11; B03 ch. 1, 7 | Other geometries › Non-Euclidean plane geometry, Angle excess, Elliptic geometry, Minkowski space, Thurston's conjecture · Types › Taxicab geometry · History › History of non-Euclidean geometry | live | → 10.2, 10.3, 13.7 · ← 1.1, 1.5 |
| 10.2 | `SphereGeometry`, `Spherical`, `Vector3 (setFromSpherical)`, `Quaternion (great-circle arcs)`, `TubeGeometry` | B02 ch. 16; B03 ch. 6; B18 ch. III | Other geometries › Elliptic geometry › Spherical geometry, Angle excess · Types › Spherical geometry · Measurements › Bearing | live | → 12.4, 13.4 · ← 1.5, 7.3, 10.1 |
| 10.3 | `LatheGeometry (hyperboloid sheet)`, `CircleGeometry`, `Matrix4 (Lorentz boosts)`, `InstancedMesh (tiles)`, `BufferGeometry` | B18 ch. II; B03 ch. 5; B02 ch. 12–13, 17; B08 ch. 3 | Other geometries › Hyperbolic geometry (Pseudosphere, Tractricoid) · Connections › Mathematics and fiber arts | live | → 12.3, 13.7 · ← 1.5, 3.5, 8.4, 10.1, 10.6 |
| 10.4 | `SphereGeometry`, `PlaneGeometry`, `Quaternion`, `Ray (pole-to-floor rays)`, `LineSegments` | B03 ch. 3, the extended plane; B19 ch. 6, stereographic and gnomonic projection; B02 ch. 16 | 3-dimensional › Stereographic projection · Projective geometry › Complex projective line | live | → 8.5, 10.6 · ← 8.5 |
| 10.5 | `EllipseCurve`, `InstancedMesh (circle chains)`, `Vector2`, `PlaneGeometry (inverted grid)` | B19 ch. 5; B02 ch. 10; B03 ch. 3 | Types › Inversive geometry, Lie sphere geometry · Circle › Steiner chain · 3-dimensional › Soddy's hexlet | live | → 10.6, 16.1 · ← 3.1, 4.5 |
| 10.6 | `SphereGeometry (gridded)`, `Quaternion`, `Object3D (position)`, `Vector2 (complex arithmetic)`, `PlaneGeometry` | B03 ch. 3–4; B02 ch. 18; B19 ch. 5 | Projective geometry › Projective transformation › Möbius transformation · Vector spaces › Complex plane, Imaginary axis, Real axis, Pole | live | → 10.3 · ← 9.5, 10.4, 10.5 |
**See-also variants** (the sim reused under different keys · ● legacy three.js live · ◐ p5.js published · ▪ article on site · a variant named under two stations extends whichever sim ships first)
- **10.1 Non-Euclidean geometry** → `Elliptic_geometry` · `Taxicab_geometry` · `Minkowski_distance` · `Chebyshev_distance` · `Minkowski_spacetime` · `Geometrization_conjecture`
- **10.2 Spherical geometry** → `Great_circle` · `Spherical_trigonometry` · `Great-circle_distance` · `Spherical_lune` · `Bearing_(navigation)`
- **10.3 Hyperbolic geometry** → `Poincaré_disk_model` · `Poincaré_half-plane_model` · `Beltrami–Klein_model` · `Hyperboloid_model` · `Pseudosphere` · `Tractrix` · `Hyperbolic_triangle` · `Angle_of_parallelism` · `Horocycle` · `Uniform_tilings_in_hyperbolic_plane` · `Heptagonal_tiling` ● · `Order-4_pentagonal_tiling` ● · `Order-5_square_tiling` ● · `Order-7_triangular_tiling` ● · `Mathematics_and_fiber_arts`
- **10.4 Stereographic projection** → `Riemann_sphere` · `Conformal_map` · `Conformal_geometry` · `Map_projection` · `Mercator_projection` · `Gnomonic_projection`
- **10.5 Inversive geometry** → `Steiner_chain` · `Pappus_chain` · `Apollonian_gasket` ● · `Descartes'_theorem` · `Soddy's_hexlet` · `Peaucellier–Lipkin_linkage` · `Lie_sphere_geometry` · `Generalised_circle`
- **10.6 Möbius transformation** → `Complex_plane` · `Riemann_sphere` · `Homography` · `Conformal_map`
## Part Five — Curvature & shape
Geometry done with derivatives: how sharply a curve turns, which way a surface bends, and the moment curvature adds up to a whole number and becomes topology.
### Movement 11 — Curves
<!-- SECTIONSIMS:BEGIN g34 2026-09-19 - microsims the articles linked here play; generated by _tools/generate/g34_portal_section_sims.py; do not hand-edit inside -->
*Microsims from the articles this section links:*
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Curvature.html" data-title="Curvature"></div>
<!-- SECTIONSIMS:END -->
A curve is a point with a clock. How fast it turns is curvature, how fast it leaves its plane is torsion — and the splines every design program draws are the same idea run backwards: choose the shape, solve for the clock.
*Outline sections:* Numerical geometry (Parametric curve, Bézier curve, Spline, Hermite spline, B-spline, NURBS) · Euclidean plane geometry › Involutes, Golden angle · Lists › List of curves · Connections › Burmester's theory · *Books:* Pinkall–Gross 1–5 (B04) · Siceloff–Wentworth–Smith, higher plane curves (B20) — no text among the twenty covers Bézier, spline or NURBS construction: a catalogue gap · *three.js:* Extras (Curve, CurvePath, CatmullRomCurve3, CubicBezierCurve3, QuadraticBezierCurve3, SplineCurve) · Geometries (TubeGeometry, ExtrudeGeometry) · Addons › Curves (NURBSCurve, VivianiCurve, HelixCurve, HeartCurve) · Addons › Modifiers (Flow) · *Wave 4.*
| # | Station | Sim (three.js) | Explanatory spine |
|---|---|---|---|
| 11.1 | `Parametric_equation` | *build target* | A point with a clock: x(t), y(t), z(t) traced live, speed shown as an arrow. Re-time the same path by arc length and the arrow stops breathing — the difference between getPoint and getPointAt. Presets roll out the classics: cycloid, involute, Lissajous, Viviani's window. |
| 11.2 | `Bézier_curve` | *build target* | Four points and a slider: de Casteljau's construction lerps between lerps until one point is left, and that point draws the curve. It is why every font outline, every SVG path and the Utah teapot are made of the same stuff. |
| 11.3 | `Spline_(mathematics)` | *build target* | Thread a curve through the points instead of near them: a Catmull–Rom spline in three flavours — uniform loops and overshoots where centripetal never does. Then give the control points weights and a NURBS draws a true circle, which no polynomial spline can. |
| 11.4 | `Curvature` | `https://wikitube-3d-microsims.netlify.app/Curvature.html` | Ride the osculating circle: at each point the best-fitting circle hugs the curve, wide on the straights and tiny in the bends, and curvature is one over its radius. Its centre traces the evolute; unwind a string from that and the original curve comes back. |
| 11.5 | `Frenet–Serret_formulas` | *build target* | A frame that rides the curve — tangent, normal, binormal — turning at the rate of curvature and twisting at the rate of torsion. The true Frenet frame spins wildly where a curve straightens; three.js's computeFrenetFrames quietly transports its frame in parallel instead, and the tube glides through. |
| 11.6 | `Elastica_theory` | *build target* | Push the ends of a springy wire together and it chooses, among all curves of its length, the one with least total squared curvature: Euler's elastica. One slider runs the whole family — gentle arch, teardrop loop, figure-eight, chain of waves — the opening act of Pinkall and Gross. |
**Cross-reference**
| # | three.js (docs classes · examples) | Books | Outline | Tier | Feeds → · ← Fed by |
|---|---|---|---|---|---|
| 11.1 | `Curve (getPoint, getPointAt, getLength, getSpacedPoints, getTangent)`, `VivianiCurve`, `HelixCurve`, `HeartCurve`, `LineCurve3`, `ArrowHelper` · `webgl_geometry_extrude_splines` | B04 ch. 1; B20 loci; higher plane curves | Numerical geometry › Parametric curve · Euclidean plane geometry › Involutes (Goat grazing problem), Golden angle · Lists › List of curves · Connections › Burmester's theory | live | → 11.2, 11.4 · ← 2.4, 4.1 |
| 11.2 | `CubicBezierCurve3`, `QuadraticBezierCurve3`, `CubicBezierCurve`, `QuadraticBezierCurve`, `Vector3 (lerp)`, `Shape (bezierCurveTo)`, `ShapePath`, `TeapotGeometry`, `TextGeometry`, `Interpolations` · `webgl_geometry_teapot`, `webgl_geometry_text` | B04 ch. 1 | Numerical geometry › Bézier curve | live | → 11.3 · ← 2.5, 11.1 |
| 11.3 | `CatmullRomCurve3 (curveType, tension)`, `SplineCurve`, `CubicInterpolant`, `NURBSCurve`, `NURBSSurface`, `NURBSVolume`, `NURBSUtils` · `webgl_geometry_spline_editor`, `webgl_geometry_nurbs` | — (no book anchor: the gap is named) | Numerical geometry › Spline (Hermite spline, B-spline), NURBS | live | → 11.5, 12.1 · ← 11.2 |
| 11.4 | `Curve (getTangentAt)`, `EllipseCurve (osculating circle)`, `LineSegments (curvature comb)`, `ArrowHelper` | B04 ch. 3; B20 higher plane curves | Euclidean plane geometry › Involutes · (Geometry child link: Curvature) | live | → 11.5, 12.3 · ← 3.6, 11.1 |
| 11.5 | `Curve (computeFrenetFrames)`, `TubeGeometry`, `ExtrudeGeometry (extrudePath)`, `ArrowHelper`, `Flow`, `InstancedFlow` · `webgl_modifier_curve`, `webgl_modifier_curve_instanced`, `webgl_geometry_extrude_splines` | B04 ch. 4–5 | Types › Differential geometry · Numerical geometry › Parametric curve | live | → 12.4, 13.5 · ← 11.3, 11.4 |
| 11.6 | `Curve (integrated ODE subclass)`, `TubeGeometry`, `BufferGeometry (setDrawRange)` | B04 ch. 2–3 | Types › Differential geometry (book-led station: the first half of B04's title) | live | → 12.5 · ← — |
**See-also variants** (the sim reused under different keys · ● legacy three.js live · ◐ p5.js published · ▪ article on site · a variant named under two stations extends whichever sim ships first)
- **11.1 Parametric equation** → `Cycloid` · `Epicycloid` · `Hypocycloid` · `Roulette_(curve)` · `Involute` · `Involute_gear` · `Goat_grazing_problem` · `Spiral` · `Archimedean_spiral` · `Logarithmic_spiral` · `Golden_angle` · `Fermat's_spiral` · `On_Spirals` ● · `Spiral_of_Theodorus` ● · `Quadratrix_of_Hippias` ● · `Lemniscate` ● · `Lissajous_curve` · `Viviani's_curve` · `Helix` · `Arc_length` · `Four-bar_linkage` · `Burmester's_theory` · `Brachistochrone_curve` · `Tautochrone_curve`
- **11.2 Bézier curve** → `De_Casteljau's_algorithm` · `Bernstein_polynomial` · `Bézier_surface` · `Utah_teapot`
- **11.3 Spline (mathematics)** → `Centripetal_Catmull–Rom_spline` · `Cubic_Hermite_spline` · `Hermite_spline` · `B-spline` · `Non-uniform_rational_B-spline`
- **11.4 Curvature** → `Osculating_circle` · `Radius_of_curvature` · `Evolute` · `Involute` · `Differentiable_curve`
- **11.5 Frenet–Serret formulas** → `Torsion_of_a_curve` · `Darboux_vector` · `Moving_frame` · `Helix` · `Viviani's_curve`
- **11.6 Elastica theory** — *thin pair: the Wikipedia article is 2.6 KB — consider `Euler_spiral` as the child slug and carry elastica as a section* → `Euler_spiral` · `Catenary` · `Tractrix`
### Movement 12 — Surfaces & manifolds
<!-- SECTIONSIMS:BEGIN g34 2026-09-19 - microsims the articles linked here play; generated by _tools/generate/g34_portal_section_sims.py; do not hand-edit inside -->
*Microsims from the articles this section links:*
<div class="wt-simrow">
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Geodesic_microsim.html" data-title="Geodesic"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Manifold_microsim.html" data-title="Manifold"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/torus_microsim.html" data-title="Torus"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Symplectic_manifold.html" data-title="Symplectic manifold"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Liouville's_theorem_(Hamiltonian).html" data-title="Liouville's theorem (Hamiltonian)"></div>
</div>
<!-- SECTIONSIMS:END -->
Gauss's discovery that a surface knows its own curvature without looking outside itself, Riemann's that the same is true in any dimension — and the working definition of a manifold: a world you can only map in overlapping pieces.
*Outline sections:* Other geometries › Differential geometry (Contact geometry, Riemannian geometry, Symplectic geometry) · Numerical geometry › Parametric surface · 3-dimensional › Pappus's centroid theorem · n-dimensional › Torus · *Books:* Pinkall–Gross 6–13 (B04) · Burtscher (B12) · Sussman–Wisdom–Farr 2–9 (B05) · Hitchman 7 (B03) · Gualtieri (B14) · *three.js:* Geometries (LatheGeometry, TorusGeometry) · Addons (ParametricGeometry, ParametricFunctions, MarchingCubes, Lut, VertexNormalsHelper, VertexTangentsHelper) · *Wave 4.*
| # | Station | Sim (three.js) | Explanatory spine |
|---|---|---|---|
| 12.1 | `Parametric_surface` | *build target* | Two sliders, u and v, and a function into space: the grid lines on the surface are the u- and v-curves, their tangents span the tangent plane, and their cross product is the normal the shader lights. Swap the function and the same machine draws a plane, a sphere, a Möbius band. |
| 12.2 | `Surface_of_revolution` | *build target* | Draw half a silhouette and spin it: LatheGeometry turns a profile into a vase, a torus, a pseudosphere. Pappus reads out the answer before the mesh finishes — area is the profile's length times the trip its centroid makes, volume is the region's area times the trip of its own, different centroid. |
| 12.3 | `Gaussian_curvature` | *build target* | Colour a torus by curvature: positive on the outer tyre, negative round the hole, zero on the two circles between — and the total is exactly nothing. Roll a sheet of paper and the colour never changes: bending is free, stretching is not, which is why a pizza slice stiffens when you fold it. |
| 12.4 | [[Geodesic]] | `https://wikitube-3d-microsims.netlify.app/Geodesic_microsim.html` | Launch a straightest-possible path and see what straight means on a torus, a cone, an ellipsoid. Then carry an arrow round a triangle on the sphere, never turning it, and it comes home rotated — by exactly the area it enclosed. |
| 12.5 | `Minimal_surface` | *build target* | Soap film as mathematics: mean curvature zero everywhere. One slider bends a catenoid into a helicoid without stretching a single thread, and every stage in between is minimal too. Then the triply periodic gyroid, drawn as a level set by marching cubes. |
| 12.6 | [[Manifold]] | `https://wikitube-3d-microsims.netlify.app/Manifold_microsim.html` | A world made of maps: two stereographic charts cover the sphere, and where they overlap a transition function translates one into the other. Drag a point across the overlap and watch both charts track it — no single flat map can, which is the definition doing its work. |
| 12.7 | `Symplectic_geometry` | *build target* | Geometry where area, not length, is sacred: push a blob of pendulum states through phase space and it stretches into a filament without gaining or losing a square millimetre. The room's door into the phase-space portals. |
**Cross-reference**
| # | three.js (docs classes · examples) | Books | Outline | Tier | Feeds → · ← Fed by |
|---|---|---|---|---|---|
| 12.1 | `ParametricGeometry (func, slices, stacks)`, `ParametricFunctions`, `VertexNormalsHelper`, `VertexTangentsHelper`, `Vector3 (cross)`, `LoftGeometry` · `webgpu_geometry_loft` | B04 ch. 6; B12 Riemannian metrics | Numerical geometry › Parametric surface | live | → 12.2, 12.3, 15.2 · ← 4.2, 5.3, 11.3 |
| 12.2 | `LatheGeometry (points, segments, phiStart, phiLength)`, `SplineCurve (profile editor)`, `TorusGeometry`, `Vector2` · `webgl_geometries` | B04 ch. 6; B16 XII.10 | 3-dimensional › Pappus's centroid theorem · n-dimensional › Torus | live | → 12.3, 12.5 · ← 7.2, 12.1 |
| 12.3 | `BufferGeometry (per-vertex curvature colours)`, `TorusGeometry`, `ParametricGeometry`, `Lut (colour map)` | B04 ch. 8, 10; B12 curvature; B03 ch. 7; B05 ch. 8 | Other geometries › Differential geometry › Riemannian geometry · (Geometry child links: Gaussian curvature, Theorema Egregium) | live | → 12.4, 13.4 · ← 10.3, 11.4, 12.1, 12.2, 15.2 |
| 12.4 | `TubeGeometry (integrated geodesic)`, `ArrowHelper (parallel transport)`, `SphereGeometry`, `ParametricGeometry`, `Raycaster (launch point)` | B12 geodesics; B04 ch. 9; B05 ch. 7–8 | Other geometries › Differential geometry › Riemannian geometry · (150-list, Pattern E: Geodesic) | live | → 13.4 · ← 10.2, 11.5, 12.3 |
| 12.5 | `ParametricGeometry (associate family)`, `MarchingCubes (gyroid and Schwarz level sets)`, `Mesh (double-sided physical material)` · `webgl_marchingcubes` | B04 ch. 12–13 | Other geometries › Differential geometry | live | → 15.4 · ← 11.6, 12.2 |
| 12.6 | `SphereGeometry`, `PlaneGeometry (two charts)`, `Raycaster (picking)`, `Points` | B05 ch. 2; B12 manifolds; B03 ch. 7 | Generalizations › Topology · Other geometries › Differential geometry | live | → 12.7, 13.3, 13.7 · ← 5.5 |
| 12.7 | `Points (ensemble)`, `ShapeGeometry (area readout)`, `ShapeUtils (area)`, `LineSegments (flow lines)` · `webgl_buffergeometry_points` | B14 symplectic and Poisson structures; B05 ch. 3–5 | Other geometries › Differential geometry (Contact geometry, Symplectic geometry) · Types › Symplectic geometry, Contact geometry | live | → — · ← 12.6 |
**See-also variants** (the sim reused under different keys · ● legacy three.js live · ◐ p5.js published · ▪ article on site · a variant named under two stations extends whichever sim ships first)
- **12.1 Parametric surface** → `Surface_(mathematics)` · `First_fundamental_form` · `Tangent_space` · `Differential_geometry_of_surfaces` · [[Differential_geometry]] ▪
- **12.2 Surface of revolution** → `Solid_of_revolution` · `Pappus's_centroid_theorem` · [[Torus]] ● ▪ · `Toroid` ● · `Catenoid` · `Pseudosphere` · `Spheroid`
- **12.3 Gaussian curvature** → `Theorema_Egregium` · `Principal_curvature` · `Mean_curvature` · `Second_fundamental_form` · `Monkey_saddle` · `Developable_surface`
- **12.4 Geodesic** → `Parallel_transport` · `Holonomy` · `Levi-Civita_connection` · `Geodesics_on_an_ellipsoid` · `Clairaut's_relation_(differential_geometry)` · `Exponential_map_(Riemannian_geometry)` · `Great_circle`
- **12.5 Minimal surface** → `Catenoid` · `Helicoid` · `Enneper_surface` · `Gyroid` · `Schwarz_minimal_surface` · `Costa's_minimal_surface` · `Plateau's_problem` · `Willmore_energy` · `Willmore_conjecture`
- **12.6 Manifold** → `Differentiable_manifold` · `Atlas_(topology)` · `Riemannian_manifold` · `Riemannian_geometry` · `Metric_tensor` · `Vector_field` · `Riemann_curvature_tensor` · `3-manifold`
- **12.7 Symplectic geometry** → [[Symplectic_manifold]] ● ▪ · `Cotangent_bundle` ● · [[Liouville's_theorem_(Hamiltonian)]] ● ▪ · `Contact_geometry` · `Poisson_manifold` · `Generalized_complex_structure`
### Movement 13 — Topology
<!-- SECTIONSIMS:BEGIN g34 2026-09-19 - microsims the articles linked here play; generated by _tools/generate/g34_portal_section_sims.py; do not hand-edit inside -->
*Microsims from the articles this section links:*
<div class="wt-simrow">
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/mobius_strip_microsim.html" data-title="mobius strip"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Surface_topology_microsim.html" data-title="Surface topology"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/knot_theory_microsim.html" data-title="knot theory"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Hairy_ball_theorem_microsim.html" data-title="Hairy ball theorem"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Genus_mathematics_microsim.html" data-title="Genus (mathematics)"></div>
</div>
<!-- SECTIONSIMS:END -->
Throw the ruler away and ask what is left: sides, holes, knottedness. Then the surprise that closes the part — add up the curvature of any closed surface and the answer is a whole number that counts its holes.
*Outline sections:* Generalizations › Topology · 3-dimensional › Borromean rings · Projective plane › Roman surface · Other geometries › Thurston's conjecture · History › History of topology · *Books:* Hitchman 7–8 (B03) · Pinkall–Gross 10–11 (B04) · Burtscher (B12) · Otera, ed. (B15) · *three.js:* Geometries (TorusKnotGeometry, TorusGeometry, TubeGeometry) · Addons › Geometries (ParametricFunctions.klein, .mobius, .mobius3d) · Addons › Curves (TrefoilKnot, FigureEightPolynomialKnot, CinquefoilKnot, GrannyKnot, DecoratedTorusKnot4a…) · *Wave 3.*
| # | Station | Sim (three.js) | Explanatory spine |
|---|---|---|---|
| 13.1 | [[Topology]] | *build target* | Geometry with the ruler thrown away: a coffee mug flows into a doughnut and back without a cut or a weld, because each has exactly one hole. Try it with a ball and the morph has to tear — the HUD's Euler characteristic says so before you start. |
| 13.2 | `Möbius_strip` | `https://wikitube-3d-microsims.netlify.app/mobius_strip_microsim.html` | One side, one edge: send an ant along the centre line and it comes home upside down. Cut along that line and the band does not fall apart but doubles in length; cut a third of the way in and you get two linked rings of different sizes. |
| 13.3 | [[Surface_(topology)]] | `https://wikitube-3d-microsims.netlify.app/Surface_topology_microsim.html` | Every closed surface is a polygon with its edges glued: fold a square one way for a torus, flip one pair of arrows for a Klein bottle, flip both for a projective plane. The classification theorem says spheres with handles and crosscaps are all there is. |
| 13.4 | `Gauss–Bonnet_theorem` | *build target* | Curvature adds up to topology: dent a sphere any way you like and the total Gaussian curvature stays 4π; add a handle and it drops by 4π. The flat-faced version is Descartes' — a polyhedron's missing angles always total 720°. |
| 13.5 | `Knot_theory` | `https://wikitube-3d-microsims.netlify.app/knot_theory_microsim.html` | Two dials, p and q, wind a rope p times round a torus and q times through its hole: (2, 3) is the trefoil, (2, 5) the cinquefoil — unless p and q share a factor, and then it falls into separate linked loops. Mirror the trefoil and no amount of wiggling gets you back. |
| 13.6 | `Hairy_ball_theorem` | `https://wikitube-3d-microsims.netlify.app/Hairy_ball_theorem_microsim.html` | Comb a hairy sphere flat and you always leave a cowlick; comb a hairy doughnut and you need none. Drag the whorls around: their indices always add up to the Euler characteristic — 2 for the ball, 0 for the torus. |
| 13.7 | `Shape_of_the_universe` | *build target* | Fly through a universe that is finite with no edge: a 3-torus looks like an endless hall of copies of yourself, each seen by older light. Swap the gluing for the Poincaré dodecahedral space and the copies arrive twisted by 36° — the pattern cosmologists look for in the microwave sky. |
**Cross-reference**
| # | three.js (docs classes · examples) | Books | Outline | Tier | Feeds → · ← Fed by |
|---|---|---|---|---|---|
| 13.1 | `BufferGeometry (morphAttributes)`, `Mesh (morphTargetInfluences)`, `TorusGeometry` · `webgl_morphtargets` | B03 ch. 7; B15 survey | Generalizations › Topology · History › History of topology | bake | → 13.2, 13.3 · ← — |
| 13.2 | `ParametricGeometry`, `ParametricFunctions (mobius, mobius3d)`, `TubeGeometry (centre line)`, `BufferGeometry (groups as the cuts)` | B03 ch. 7 | Generalizations › Topology · (150-list, Pattern D) | live | → 13.3 · ← 13.1 |
| 13.3 | `ParametricGeometry (animated gluing)`, `ParametricFunctions (klein)`, `TorusGeometry`, `BufferGeometry (morphAttributes)` · `webgl_morphtargets` | B03 ch. 7, quotient spaces | Generalizations › Topology · Projective plane › Roman surface | live | → 13.4, 13.7 · ← 5.6, 6.1, 12.6, 13.1, 13.2 |
| 13.4 | `BufferGeometry (angle-defect curvature per vertex)`, `SphereGeometry (sculpted)`, `TorusGeometry`, `Raycaster (sculpt brush)` · `webgl_geometry_terrain_raycast` | B04 ch. 10–11; B12 Gauss–Bonnet; B03 ch. 7 | Polyhedron › Defect · Other geometries › Differential geometry | live | → 13.6 · ← 6.1, 10.2, 12.3, 12.4, 13.3 |
| 13.5 | `TorusKnotGeometry (p, q)`, `TubeGeometry`, `TrefoilKnot`, `TrefoilPolynomialKnot`, `FigureEightPolynomialKnot`, `CinquefoilKnot`, `GrannyKnot`, `KnotCurve`, `TorusKnot`, `DecoratedTorusKnot4a`, `DecoratedTorusKnot4b`, `DecoratedTorusKnot5a`, `DecoratedTorusKnot5c` · `webgl_geometries`, `webgl_geometry_extrude_splines` | B15 low-dimensional topology | 3-dimensional › Borromean rings · (Geometry child link: List of knot theory topics; 150-list, Pattern E) | live | → — · ← 8.5, 11.5 |
| 13.6 | `InstancedMesh (hairs)`, `MeshSurfaceSampler (hair roots)`, `SphereGeometry`, `TorusGeometry`, `Vector3 (projectOnPlane)` · `webgl_instancing_scatter` | B05 ch. 3 | (150-list, Pattern E) · Generalizations › Topology | live | → — · ← 13.4 |
| 13.7 | `InstancedMesh (tiled copies)`, `Matrix4 (deck transformations)`, `FlyControls`, `PointerLockControls`, `DodecahedronGeometry` · `misc_controls_fly`, `misc_controls_pointerlock` | B03 ch. 8 | Other geometries › Thurston's conjecture, Minkowski space | live | → — · ← 10.1, 10.3, 12.6, 13.3 |
**See-also variants** (the sim reused under different keys · ● legacy three.js live · ◐ p5.js published · ▪ article on site · a variant named under two stations extends whichever sim ships first)
- **13.1 Topology** → `Homeomorphism` · `Homotopy` · `Algebraic_topology` · `Jordan_curve_theorem` · `Seven_Bridges_of_Königsberg` ●
- **13.2 Möbius strip** → `Orientability` · `Klein_bottle` ● · `Real_projective_plane` ● · `Boy's_surface` · `Roman_surface`
- **13.3 Surface (topology)** → `Fundamental_polygon` · [[Genus_(mathematics)]] ● ▪ · `Connected_sum` · `Euler_characteristic` ● · `Orientability` · `Klein_bottle` ● · `Real_projective_plane` ●
- **13.4 Gauss–Bonnet theorem** → `Angular_defect` · `Euler_characteristic` ● · `Poincaré–Hopf_theorem`
- **13.5 Knot theory** → `Trefoil_knot` · `Figure-eight_knot_(mathematics)` ● · `Torus_knot` · `Prime_knot` ● · `Unknot` · `Cinquefoil_knot` · `Granny_knot_(mathematics)` · `Reidemeister_move` · `Borromean_rings` · `Link_(knot_theory)` · `Hopf_link` · `Linking_number` · `Seifert_surface`
- **13.6 Hairy ball theorem** → `Poincaré–Hopf_theorem` · `Vector_field` · `Winding_number` ●
- **13.7 Shape of the universe** → `3-manifold` · `3-torus` · `Homology_sphere` · `Geometrization_conjecture` · `Poincaré_conjecture`
## Part Six — Geometry as computation
The same subject with a clock running: hulls, triangulations and nearest-neighbour maps as algorithms you can step, the mesh as the GPU's idea of a shape, and figures that are nothing but a rule applied forever.
### Movement 14 — Computational geometry
<!-- SECTIONSIMS:BEGIN g34 2026-09-19 - microsims the articles linked here play; generated by _tools/generate/g34_portal_section_sims.py; do not hand-edit inside -->
*Microsims from the articles this section links:*
<div class="wt-simrow">
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Convex_hull_microsim.html" data-title="Convex hull"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Triangulation_microsim.html" data-title="Triangulation"></div>
</div>
<!-- SECTIONSIMS:END -->
Geometry with a cost model. The questions are Euclid's — what encloses, what is nearest, what is inside — but the answer has to arrive in n log n, and every algorithm here can be single-stepped.
*Outline sections:* Geometric algorithms (Convex hull construction, Euclidean shortest path, Point in polygon, Point location, Hidden line removal) · 3-dimensional › 3D computer graphics (Binary space partitioning, Ray tracing, Graham scan) · Polygon › Polygon triangulation · n-dimensional › Voronoi tessellation, Delaunay triangulation · Types › Computational, Convex, Discrete geometry · *Books:* de Berg et al. 1–15 (B09) · Mount (B10) · *three.js:* Addons › Math (ConvexHull, OBB, Octree) · Extras (Earcut, ShapeUtils) · Core (Raycaster) · Math (Ray, Box3, Sphere, Frustum) · Addons › Geometries (ConvexGeometry, RoundedBoxGeometry) · *Wave 4.*
| # | Station | Sim (three.js) | Explanatory spine |
|---|---|---|---|
| 14.1 | `Convex_hull` | `https://wikitube-3d-microsims.netlify.app/Convex_hull_microsim.html` | Stretch a rubber band round the nails: Graham's scan walks the sorted points and pops every right turn, one step per click. In space, quickhull grows a tetrahedron outward, and the horizon — the loop of edges the new point can see — lights up before each face is added. |
| 14.2 | `Polygon_triangulation` | `https://wikitube-3d-microsims.netlify.app/Triangulation_microsim.html` | Every simple polygon has two ears; clip one and repeat. That is Earcut, the routine three.js runs whenever you ask for a ShapeGeometry. Three-colour the corners of the triangles and the smallest colour class guards the whole gallery — ⌊n/3⌋ cameras always suffice. |
| 14.3 | `Voronoi_diagram` | *build target* | Whose post office is nearest? Stand a cone on every site, look straight down with an orthographic camera, and the depth buffer draws the Voronoi cells for free. Lift the same sites onto a paraboloid and the lower convex hull is the Delaunay triangulation. |
| 14.4 | `Point_in_polygon` | *build target* | Shoot a ray and count crossings: odd is in, even is out. Tie the polygon in a knot and the rule disagrees with the winding number — two honest answers to the word inside. In space the same ray, tested triangle by triangle, is everything Raycaster does. |
| 14.5 | `Bounding_volume_hierarchy` | *build target* | Wrap everything in boxes, then boxes of boxes: a ray that misses the big box skips ten thousand triangles at once. Swap sphere, axis-aligned box and oriented box to feel the trade between tight and cheap, and watch the camera's frustum cull whole branches unseen. |
| 14.6 | `Motion_planning` | *build target* | Shrink the robot to a point by fattening the obstacles: each fattened shape is a Minkowski sum, built live as the robot's outline slides round the obstacle's — a box plus a ball is exactly a RoundedBoxGeometry. The shortest route is then a taut string over the corners: the visibility graph. |
**Cross-reference**
| # | three.js (docs classes · examples) | Books | Outline | Tier | Feeds → · ← Fed by |
|---|---|---|---|---|---|
| 14.1 | `ConvexHull (setFromPoints)`, `ConvexGeometry`, `Points`, `ConvexObjectBreaker` · `webgl_geometry_convex`, `physics_ammo_break` | B09 ch. 1, 11; B10 hulls | Geometric algorithms › Convex hull construction · n-dimensional › Convex › Convex hull · 3D computer graphics › Graham scan · Types › Convex geometry | live | → 14.3, 14.5 · ← — |
| 14.2 | `ShapeUtils (triangulateShape)`, `Earcut`, `ShapeGeometry`, `Shape (holes)` · `webgl_geometry_shapes` | B09 ch. 3; B10 triangulation | Polygon › Polygon triangulation · (150-list, Pattern F: Triangulation) | live | → 15.1 · ← 3.3 |
| 14.3 | `InstancedMesh (ConeGeometry)`, `ConeGeometry`, `OrthographicCamera`, `ConvexHull (lifted paraboloid)`, `DragControls` · `webgl_instancing_dynamic` | B09 ch. 7, 9; B10 Voronoi; Delaunay | n-dimensional › Packing › Honeycomb › Voronoi tessellation, Delaunay triangulation | live | → 15.1 · ← 6.4, 7.5, 7.6, 9.6, 14.1 |
| 14.4 | `Raycaster (intersectObject, setFromCamera)`, `Ray (intersectTriangle)`, `Triangle (containsPoint)`, `ArrowHelper` · `misc_raycaster_helper`, `webgl_interactive_raycasting_points`, `webgl_interactive_cubes` | B09 ch. 6; B10 point location | Geometric algorithms › Point in polygon, Point location · 3D computer graphics › Ray tracing | live | → 14.5 · ← 2.5 |
| 14.5 | `Box3`, `Sphere`, `OBB`, `Octree`, `OctreeHelper`, `Capsule`, `Frustum (intersectsBox)`, `FrustumArray`, `Box3Helper`, `BoxHelper`, `SelectionBox` · `webgl_raycaster_bvh`, `webgl_math_obb`, `games_fps`, `misc_boxselection`, `webgl_batch_lod_bvh` | B09 ch. 5, 12, 14; B10 kd-trees; range trees | 3D computer graphics › Binary space partitioning · Geometric algorithms › Hidden line removal | live | → 15.6 · ← 9.2, 14.1, 14.4, 16.4 |
| 14.6 | `Shape`, `ShapeGeometry`, `ConvexHull (Minkowski sum of convex sets)`, `RoundedBoxGeometry`, `DragControls`, `LineSegments` · `misc_controls_drag` | B09 ch. 13, 15 | Geometric algorithms › Euclidean shortest path · Connections › Robot control | live | → — · ← — |
**See-also variants** (the sim reused under different keys · ● legacy three.js live · ◐ p5.js published · ▪ article on site · a variant named under two stations extends whichever sim ships first)
- **14.1 Convex hull** → `Graham_scan` · `Gift_wrapping_algorithm` · `Quickhull` · `Convex_set` · `Convex_polytope` · `Convex_geometry` · [[Computational_geometry]] ▪
- **14.2 Polygon triangulation** → `Two_ears_theorem` · `Art_gallery_problem` · `Monotone_polygon` · `Triangulation_(geometry)` · [[Simple_polygon]] ● ▪
- **14.3 Voronoi diagram** → `Delaunay_triangulation` · `Fortune's_algorithm` · `Lloyd's_algorithm` · `Power_diagram` · `Worley_noise`
- **14.4 Point in polygon** → `Ray_casting` · `Ray_tracing_(graphics)` · `Möller–Trumbore_intersection_algorithm` · `Winding_number` ● · `Jordan_curve_theorem` · `Point_location`
- **14.5 Bounding volume hierarchy** → `Bounding_volume` · `Minimum_bounding_box` · `Bounding_sphere` · `Octree` · `Quadtree` · `K-d_tree` · `Binary_space_partitioning` · `R-tree` · `Range_searching` · `Collision_detection` · `Hyperplane_separation_theorem` · `Hidden-surface_determination` · `Hidden-line_removal`
- **14.6 Motion planning** → `Minkowski_addition` · [[Configuration_space_(physics)]] ● ▪ · `Visibility_graph` · `Euclidean_shortest_path` · `Robot_control` · `Linear_programming` · `Bentley–Ottmann_algorithm` · `Sweep_line_algorithm` · `Arrangement_of_lines`
### Movement 15 — Meshes & solid modelling
<!-- SECTIONSIMS:BEGIN g34 2026-09-19 - microsims the articles linked here play; generated by _tools/generate/g34_portal_section_sims.py; do not hand-edit inside -->
*Microsims from the articles this section links:*
<div class="wt-simrow">
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Subdivision_surfaces_microsim.html" data-title="Subdivision surfaces"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Marching_cubes_microsim.html" data-title="Marching cubes"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Constructive_solid_geometry_microsim.html" data-title="Constructive solid geometry"></div>
</div>
<!-- SECTIONSIMS:END -->
What a shape is to a GPU: triangles, and the arrows that tell light which way they face. How smooth things are faked from flat ones, how fields become surfaces, and how solids are spelled out as sentences of union and difference.
*Outline sections:* 3-dimensional › 3D computer graphics, Polyhedron › Surface normal · Euclidean plane geometry › 2D computer graphics, 2D geometric model · Types › Constructive solid geometry, Digital geometry · Connections › Computer graphics, Image analysis · *Books:* de Berg et al. 2, 12, 14 (B09) · Mount (B10) · Pinkall–Gross 6 (B04) · *three.js:* Core (BufferGeometry, BufferAttribute, InstancedBufferGeometry) · Geometries (EdgesGeometry, WireframeGeometry) · Objects (LOD, BatchedMesh, InstancedMesh) · Addons (MarchingCubes, SimplifyModifier, TessellateModifier, EdgeSplitModifier, BufferGeometryUtils, VertexNormalsHelper) · *Wave 4.*
| # | Station | Sim (three.js) | Explanatory spine |
|---|---|---|---|
| 15.1 | `Polygon_mesh` | *build target* | What a shape is to a GPU: a list of corner positions and a list of which three make each triangle. Switch indexing off and the shared corners multiply — three vertices per triangle, six times as many on a closed mesh; reverse one triangle's winding and it vanishes from the front. BufferGeometry, taken apart on the bench. |
| 15.2 | `Normal_(geometry)` | *build target* | The arrow that tells light which way a surface faces. Give each corner its own and a cube stays a cube; average them and it shades like a ball. Squash the mesh and the normals lean the wrong way unless they ride the inverse-transpose matrix — the classic bug, reproduced on purpose. |
| 15.3 | `Subdivision_surface` | `https://wikitube-3d-microsims.netlify.app/Subdivision_surfaces_microsim.html` | Cut corners forever: split every face, nudge the vertices by a fixed recipe, repeat, and a crude cage converges on a smooth limit surface. Catmull–Clark for quads, Loop for triangles — and creases where the recipe is told to stand down. |
| 15.4 | `Marching_cubes` | `https://wikitube-3d-microsims.netlify.app/Marching_cubes_microsim.html` | A surface from a field: sample a function on a grid, mark each cube's eight corners in or out, and one of fifteen little triangle patterns drops in. Slide the threshold through a cloud of metaballs and watch blobs bud and merge — the algorithm that turned CT scans into surfaces. |
| 15.5 | `Constructive_solid_geometry` | `https://wikitube-3d-microsims.netlify.app/Constructive_solid_geometry_microsim.html` | Shapes as sentences: union, intersection, difference. Drill a cylinder through a cube, intersect with a sphere, and the tree that spells the part is as much the model as the mesh is. Drag an operand and the boolean re-cuts in real time. |
| 15.6 | `Level_of_detail_(computer_graphics)` | *build target* | Far things need fewer triangles: collapse a mesh edge by edge, cheapest first, and a 20 000-face bust degrades gracefully to 200. Hook the versions to camera distance and the swap happens where you cannot see it — until you freeze the camera and fly out to look. |
**Cross-reference**
| # | three.js (docs classes · examples) | Books | Outline | Tier | Feeds → · ← Fed by |
|---|---|---|---|---|---|
| 15.1 | `BufferGeometry (setAttribute, setIndex, toNonIndexed, drawRange, groups)`, `BufferAttribute`, `InstancedBufferGeometry`, `BufferGeometryUtils (mergeVertices)`, `WireframeGeometry`, `EdgesGeometry`, `Wireframe`, `WireframeGeometry2`, `Points` · `webgl_buffergeometry`, `webgl_buffergeometry_indexed`, `webgl_buffergeometry_drawrange` | B09 ch. 2, doubly-connected edge list; B10 planar subdivisions | 3-dimensional › 3D computer graphics · Euclidean plane geometry › 2D computer graphics, 2D geometric model · Connections › Computer graphics | live | → 15.2, 15.3, 15.6 · ← 2.5, 6.1, 14.2, 14.3 |
| 15.2 | `BufferGeometry (computeVertexNormals)`, `VertexNormalsHelper`, `Matrix3 (getNormalMatrix)`, `EdgeSplitModifier`, `Mesh (flat-shaded and normal materials)` · `webgl_modifier_edgesplit` | B04 ch. 6, the unit normal | Polyhedron › Surface normal | live | → 12.3 · ← 1.2, 4.2, 12.1, 15.1 |
| 15.3 | `TessellateModifier`, `BufferGeometryUtils`, `WireframeGeometry (cage overlay)`, `BufferGeometry` · `webgl_modifier_subdivision`, `webgl_modifier_tessellation` | — (no book anchor: the gap is named) | (150-list, Pattern F: Subdivision surfaces) · 3-dimensional › 3D computer graphics | live | → 15.6 · ← 7.4, 15.1 |
| 15.4 | `MarchingCubes (addBall, isolation, resolution)`, `Volume`, `VolumeSlice`, `ImprovedNoise (test fields)` · `webgl_marchingcubes`, `webgl_loader_nrrd`, `webgl_interactive_voxelpainter` | — (no book anchor: the gap is named) | (150-list, Pattern F: Marching cubes, Voxel) · Types › Digital geometry · Connections › Image analysis | live | → — · ← 12.5 |
| 15.5 | `ClippingGroup`, `Plane (as Material.clippingPlanes with Material.clipIntersection — a cheap intersection)`, `Group`, `BoxGeometry`, `CylinderGeometry` · `webgl_geometry_csg`, `webgl_clipping_intersection`, `webgl_clipping_advanced` | B09 ch. 12 | Types › Constructive solid geometry | live | → — · ← — |
| 15.6 | `SimplifyModifier`, `LOD (addLevel)`, `BatchedMesh`, `InstancedMesh` · `webgl_modifier_simplifier`, `webgl_lod`, `webgl_batch_lod_bvh` | B09 ch. 14 | 3-dimensional › 3D computer graphics | bake | → — · ← 9.2, 14.5, 15.1, 15.3 |
**See-also variants** (the sim reused under different keys · ● legacy three.js live · ◐ p5.js published · ▪ article on site · a variant named under two stations extends whichever sim ships first)
- **15.1 Polygon mesh** → `Triangle_mesh` · `Wire-frame_model` · `Polygonal_modeling` ● · `Doubly_connected_edge_list` · `Winged_edge` · `Triangle_strip` · `UV_mapping` · `Geometry_instancing` · `3D_modeling` · `Computer_graphics` · `3D_computer_graphics` · `2D_computer_graphics` · `2D_geometric_model` · `Point_cloud`
- **15.2 Normal (geometry)** → `Vertex_normal` · `Normal_mapping` · `Back-face_culling`
- **15.3 Subdivision surface** → `Catmull–Clark_subdivision_surface` · `Loop_subdivision_surface` · `Doo–Sabin_subdivision_surface` · `Tessellation_(computer_graphics)`
- **15.4 Marching cubes** → `Isosurface` · `Metaballs` · `Marching_squares` · `Marching_tetrahedra` · `Voxel` ● · `Implicit_surface` · `Signed_distance_function` · `Digital_geometry` · `Image_analysis`
- **15.5 Constructive solid geometry** → `Boolean_operations_on_polygons` · `Boundary_representation` · `Solid_modeling` · `Computer-aided_design` · `Signed_distance_function`
- **15.6 Level of detail (computer graphics)** → `Progressive_meshes` · `Mesh_generation`
### Movement 16 — Fractals
Figures that are nothing but a rule applied forever — and the discovery that dimension, the most settled number in geometry, does not have to be whole.
*Outline sections:* Types › Fractal geometry · (Geometry child links: Fractal, Fractal dimension, Koch snowflake; 150-list: Cantor set, Apollonian gasket) · *Books:* none of the twenty goes here — a gap in the catalogue worth filling · *three.js:* Addons › Utils (GeometryUtils.hilbert2D, hilbert3D, gosper) · Objects (InstancedMesh, Points) · Materials (clippingPlanes) · Addons › Math (ImprovedNoise, SimplexNoise) · *Wave 3.*
| # | Station | Sim (three.js) | Explanatory spine |
|---|---|---|---|
| 16.1 | [[Fractal]] | *build target* | A coastline that never settles: each click replaces every straight piece of the Koch curve with four shorter ones, the length grows by a third, and the area barely moves. Measure with smaller and smaller rulers and the slope of the log–log plot is the dimension — 1.26, neither line nor plane. |
| 16.2 | `Sierpiński_triangle` | *build target* | Roll a die, jump halfway to the corner it names, leave a dot, repeat: out of pure chance the gasket condenses. Do it in space with four corners and the Sierpiński tetrahedron appears — a solid-looking thing whose dimension is exactly 2. |
| 16.3 | `Menger_sponge` | *build target* | Drill the middle out of a cube, then out of each of the twenty that remain, and again: volume heads for zero while surface heads for infinity. Slice the sponge corner-to-corner with a clipping plane and six-pointed stars appear where no one expects them. |
| 16.4 | `Space-filling_curve` | *build target* | A line that visits every point of a square — and, one dimension up, of a cube. three.js ships the recipe as GeometryUtils.hilbert3D. Raise the order and the path thickens into a solid; colour it by distance travelled and neighbours in time turn out to be neighbours in space — the colour jumps mark where the converse fails. |
| 16.5 | `Iterated_function_system` | *build target* | A fern from four matrices: pick one of a handful of affine maps at random, apply it, plot, repeat. Drag the little parallelograms that stand for the maps and the fern becomes a tree, a spiral, a Sierpiński gasket — the shape is whatever the maps' collage says it is. |
**Cross-reference**
| # | three.js (docs classes · examples) | Books | Outline | Tier | Feeds → · ← Fed by |
|---|---|---|---|---|---|
| 16.1 | `LineSegments`, `BufferGeometry (setDrawRange)`, `OrthographicCamera (zoom)`, `LineLoop` · `webgl_buffergeometry_lines` | — (no book anchor: the gap is named) | Types › Fractal geometry | live | → 16.2, 16.3 · ← 2.2, 10.5 |
| 16.2 | `Points`, `BufferGeometry (setDrawRange growth)`, `InstancedMesh (TetrahedronGeometry)`, `TetrahedronGeometry` · `webgl_buffergeometry_points` | — (no book anchor: the gap is named) | Types › Fractal geometry | live | → 16.5 · ← 16.1 |
| 16.3 | `InstancedMesh (20ⁿ boxes)`, `BoxGeometry`, `Plane (clipping)`, `Matrix4` · `webgl_instancing_performance`, `webgl_clipping` | — (no book anchor: the gap is named) | Types › Fractal geometry | live | → — · ← 16.1 |
| 16.4 | `GeometryUtils (hilbert2D, hilbert3D, gosper)`, `Line (vertex colours)`, `TubeGeometry` · `webgl_lines_colors`, `webgl_lines_dashed` | — (no book anchor: the gap is named) | Types › Fractal geometry · Lists › List of curves | live | → 14.5 · ← — |
| 16.5 | `Matrix4 (affine maps)`, `Matrix3`, `Points`, `TransformControls (map handles)`, `SimplexNoise (landscape variant)` · `webgl_geometry_terrain`, `webgl_points_waves` | — (no book anchor: the gap is named) | Types › Fractal geometry · Other geometries › Affine transformation | live | → — · ← 4.3, 16.2 |
**See-also variants** (the sim reused under different keys · ● legacy three.js live · ◐ p5.js published · ▪ article on site · a variant named under two stations extends whichever sim ships first)
- **16.1 Fractal** → `Koch_snowflake` · `Self-similarity` · `Fractal_dimension` · `Hausdorff_dimension` · `Coastline_paradox` · `Cantor_set` ● · `Apollonian_gasket` ● · `Mandelbrot_set` · `Julia_set` · `Mandelbulb`
- **16.2 Sierpiński triangle** → `Chaos_game` · `Sierpiński_carpet`
- **16.3 Menger sponge** → `Sierpiński_carpet` · `Cantor_set` ●
- **16.4 Space-filling curve** → `Hilbert_curve` · `Peano_curve` · `Gosper_curve` · `Moore_curve` · `Z-order_curve`
- **16.5 Iterated function system** → `Barnsley_fern` · `L-system` · `Fractal_landscape`
## The book shelf
Twenty open textbooks, numbered B01–B20 in the order of the Geometry room's `geometry_textbooks.md` (compiled 2026-03-21; links as catalogued there, not re-fetched on 2026-09-17). Each entry names the chapters the stations will footnote and the stations that anchor on it; page-level footnotes are pinned at the article pass (wt-article), not here. Fifteen are newer texts, five are classics. Two of the twenty are in copyright and are cited by record only; the other eighteen are the shelf `Portal Books/PORTAL_Geometry/` will hold once the download pass runs on a networked lane. Two movements — 8 *Higher dimensions* and 16 *Fractals* — have no anchor among the twenty: Coxeter's *Regular Polytopes* and a fractal-geometry text are the catalogue's two gaps.
### B01 · Elementary College Geometry (2021)
[record](https://academicworks.cuny.edu/ny_oers/44/) · [download](https://batch.libretexts.org/print/Letter/Finished/math-34115/Full.pdf) · *CC BY-NC-SA 4.0* · LibreTexts / CUNY Academic Works
Africk. The plane course at its plainest: lines, angles, triangles, quadrilaterals, similarity, right-triangle trigonometry, area, regular polygons and circles. Part One's footnotes for the definitions and the first proofs.
*Chapters cited:* ch. 1 Lines, Angles, Triangles · 2 Congruent Triangles · 3 Quadrilaterals · 4 Similar Triangles · 5 Trigonometry & Right Triangles · 6 Area & Perimeter · 7 Regular Polygons & Circles (verified). *Anchors:* 1.3, 1.4, 2.1, 2.2, 2.3, 2.4, 3.1, 3.2, 3.3, 3.4.
### B02 · Euclidean Plane and Its Relatives (2025)
[record](https://arxiv.org/abs/1302.1630) · [download](https://arxiv.org/pdf/1302.1630) · *CC BY-SA* · arXiv:1302.1630, v25 (2025)
Petrunin. The minimalist plane and its relatives — inversion, the neutral and hyperbolic planes, affine, projective and spherical geometry, complex coordinates, constructions, area. The single book that spans Parts One, Two and Four, and the one most stations cite.
*Chapters cited:* ch. 1–8 Euclidean · 9 Inscribed angles · 10 Inversion · 11 Neutral plane · 12 Hyperbolic plane · 13 h-plane · 14 Affine · 15 Projective · 16 Spherical · 17 Projective model · 18 Complex coordinates · 19 Constructions · 20 Area (verified). *Anchors:* 1.1, 1.4, 1.5, 1.6, 2.1, 2.2, 3.1, 3.2, 3.4, 4.3, 9.1, 9.3, 9.4, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6.
### B03 · Geometry with an Introduction to Cosmic Topology (2018/2020)
[record](https://open.umn.edu/opentextbooks/textbooks/743) · [download](https://mphitchman.com/geometry/GCTscreen.pdf) · *CC BY-SA* · author's site / Open Textbook Library
Hitchman. Geometry by transformation groups: Möbius maps first, then Euclidean, hyperbolic and elliptic geometry as their subgroups, and cosmic topology at the end. The Erlangen thesis of this room, written as a textbook; Movements 10 and 13 lean on it.
*Chapters cited:* ch. 1 Invitation · 2 Complex Plane · 3 Transformations · 4 Geometry · 5 Hyperbolic · 6 Elliptic · 7 Geometry on Surfaces · 8 Cosmic Topology (verified). *Anchors:* 2.4, 3.5, 4.4, 4.5, 4.6, 9.5, 10.1, 10.2, 10.3, 10.4, 10.5, 10.6, 12.3, 12.6, 13.1, 13.2, 13.3, 13.4, 13.7.
### B04 · Differential Geometry: From Elastic Curves to Willmore Surfaces (2024)
[record](https://library.oapen.org/handle/20.500.12657/88305) · [download](https://page.math.tu-berlin.de/~pinkall/DG.pdf) · *CC BY 4.0* · Birkhäuser open access / OAPEN
Pinkall & Gross. Curves and surfaces the modern way — elastic curves, curvature, Levi-Civita, total Gaussian curvature, closed surfaces, Willmore energy. Part Five's main text: Movements 11 and 12 footnote it chapter by chapter.
*Chapters cited:* Part I Curves ch. 1–5 · Part II Surfaces ch. 6–13 (8 Curvature · 9 Levi-Civita · 10 Total Gaussian Curvature · 11 Closed Surfaces · 12 Variations · 13 Willmore) (verified). *Anchors:* 11.1, 11.2, 11.4, 11.5, 11.6, 12.1, 12.2, 12.3, 12.4, 12.5, 13.4, 15.2.
### B05 · Functional Differential Geometry (2013)
[record](https://mitpress.mit.edu/books/functional-differential-geometry) · [download](https://groups.csail.mit.edu/mac/users/gjs/6946/calculus-indexed.pdf) · *CC BY-NC-ND* · MIT Press open access
Sussman, Wisdom & Farr. Differential geometry as programs: manifolds, vector and one-form fields, covariant derivatives, curvature, metrics. The book whose spirit the sims borrow — every object is something you can compute with.
*Chapters cited:* ch. 2 Manifolds · 3 Vector & One-Form Fields · 4 Basis Fields · 5 Integration · 6 Over a Map · 7 Directional Derivatives · 8 Curvature · 9 Metrics · 10 Hodge Star · 11 Special Relativity (from memory). *Anchors:* 4.2, 12.3, 12.4, 12.6, 12.7, 13.6.
### B06 · Algebraic Geometry (2024)
[record](https://www.jmilne.org/math/CourseNotes/ag.html) · [download](https://www.jmilne.org/math/CourseNotes/AG.pdf) · *free for non-commercial use* · author's site
Milne. Classical algebraic geometry: algebraic sets, affine and projective varieties, dimension, regular maps. The graduate anchor for Movement 5's varieties and the cubic surface.
*Chapters cited:* ch. 2 Algebraic sets · 3 Affine varieties · 4 Local study · 5 Varieties · 6 Projective varieties · 7 Complete varieties · 9 Regular maps and fibres (verified). *Anchors:* 5.4, 5.5, 5.6.
### B07 · Beginning in Algebraic Geometry (2025)
[record](https://library.oapen.org/handle/20.500.12657/103560) · [download](https://library.oapen.org/bitstream/handle/20.500.12657/103560/1/9783031888199.pdf) · *CC BY 4.0* · Springer UTM open access / OAPEN
Clader & Ross. Undergraduate algebraic geometry from polynomial rings to quasiprojective varieties, with the Nullstellensatz and dimension theory. Movement 5's readable entrance.
*Chapters cited:* Polynomial Rings · Affine AG (Varieties & Ideals · Irreducibility · Coordinate Rings · Polynomial Maps · Nullstellensatz · Dimension · Smoothness · Products) · Projective AG (Projective Varieties · Maps · Quasiprojective · Culminating Topics) (verified). *Anchors:* 5.4, 5.5, 5.6.
### B08 · Modern Geometry (LibreTexts) (c. 2020)
[record](https://math.libretexts.org/Bookshelves/Geometry) · [download](https://batch.libretexts.org/print/Letter/Finished/math-104964/Full.pdf) · *CC BY* · LibreTexts
Bishop. Euclid's first book proposition by proposition, then neutral, hyperbolic and advanced Euclidean geometry. Part One's second voice and the bridge to Movement 10.
*Chapters cited:* ch. 1 Elements I.1–28 · 2 More Neutral Geometry · 3 Hyperbolic Geometry · 4 Elementary Euclidean · 5 Advanced Euclidean (verified). *Anchors:* 1.1, 1.4, 1.5, 2.1, 9.1, 10.1, 10.3.
### B09 · Computational Geometry: Algorithms and Applications (3rd ed., 2008)
[record](https://link.springer.com/book/10.1007/978-3-540-77974-2) · *in copyright (Springer)* · the catalogue's CMU course copy is not shelved; cite the Springer record
de Berg, Cheong, van Kreveld & Overmars. The standard computational-geometry text: hulls, segment intersection, triangulation, Voronoi, Delaunay, BSP trees, motion planning, visibility graphs. Movement 14's algorithms are its chapters, stepped.
*Chapters cited:* ch. 1 Hulls · 2 Segment Intersection · 3 Triangulation · 4 LP · 5 Range Searching · 6 Point Location · 7 Voronoi · 8 Arrangements & Duality · 9 Delaunay · 11 3-D Hulls · 12 BSP · 13 Motion Planning · 14 Quadtrees · 15 Visibility Graphs (verified). *Anchors:* 14.1, 14.2, 14.3, 14.4, 14.5, 14.6, 15.1, 15.5, 15.6.
### B10 · CMSC 754 Computational Geometry lecture notes (2020)
[record](https://www.cs.umd.edu/class/spring2020/cmsc754/) · [download](https://www.cs.umd.edu/class/spring2020/cmsc754/Lects/cmsc754-spring2020-lects.pdf) · *free for educational use* · University of Maryland
Mount. The CMSC 754 lecture notes cover the same algorithms with the randomised and approximate variants the book leaves out. Movement 14's second reading.
*Chapters cited:* hulls · LP · segment intersection & triangulation · point location · Voronoi · kd-/range trees · Delaunay · arrangements & duality · approximation (topics verified). *Anchors:* 14.1, 14.2, 14.3, 14.4, 14.5, 15.1.
### B11 · Projective Geometry lecture notes, TU Berlin (2016/2020)
[download](https://www3.math.tu-berlin.de/geometrie/Lehre/SS20/GeometryII/geometry1-projective.pdf) · *academic lecture notes* · TU Berlin geometry group
Rörig (after Springborn). Projective spaces, homogeneous coordinates, transformations, cross-ratio, duality, conics and quadrics. Movement 9's text.
*Chapters cited:* projective spaces · homogeneous coordinates · projective transformations · cross-ratio · duality · conics & quadrics (topic level). *Anchors:* 5.1, 5.3, 6.4, 9.1, 9.2, 9.3, 9.4, 9.5, 9.6.
### B12 · Introduction to Riemannian Geometry (2024/25)
[download](https://www.math.ru.nl/~burtscher/lecturenotes/2425RGnotes.pdf) · *academic lecture notes* · Radboud University Nijmegen
Burtscher. Riemannian manifolds, metrics, connections, geodesics, curvature, Gauss–Bonnet, in John Lee's order. Movement 12's formal companion.
*Chapters cited:* manifolds · Riemannian metrics · connections · geodesics · curvature · Gauss–Bonnet (topic level). *Anchors:* 12.1, 12.3, 12.4, 12.6, 13.4.
### B13 · Euclid's Elements Redux (2024)
[record](https://open.umn.edu/opentextbooks/textbooks/693) · [download](https://ia801602.us.archive.org/11/items/euclid-elements-redux_201809/euclid-a4.pdf) · *CC BY-SA 4.0* · Internet Archive / Open Textbook Library
Callahan (ed.), Casey, Heath. All thirteen books of the Elements with modernised proofs. Cited by proposition wherever a station is one of Euclid's — most of Part One and Movement 6.
*Chapters cited:* Books I–XIII, by proposition (by proposition). *Anchors:* 1.1, 6.2.
### B14 · Topics in Geometry: Dirac Geometry, MIT 18.969 (2006)
[record](https://ocw.mit.edu/courses/18-969-topics-in-geometry-dirac-geometry-fall-2006/) · [download](https://ocw.mit.edu/courses/18-969-topics-in-geometry-dirac-geometry-fall-2006/84ec6aea9629b385337e398d35974294_18_969_geometry.pdf) · *CC BY-NC-SA* · MIT OpenCourseWare
Gualtieri. Symplectic and Poisson structures, Dirac and generalized complex geometry. The far end of Movement 12, for station 12.7 only.
*Chapters cited:* symplectic & Poisson structures · Dirac structures · generalized complex geometry (topic level). *Anchors:* 12.7.
### B15 · Geometry and Topology with Applications (2025)
[download](https://mdpi-res.com/bookfiles/book/10887/Geometry_and_Topology_with_Applications.pdf?v=1747822538) · *CC BY-NC-ND 4.0 (articles CC BY)* · MDPI Books reprint
Otera (ed.). A research collection in low-dimensional topology, geometric group theory and differential geometry. Topic-level anchor for Movement 13's later stations.
*Chapters cited:* research collection: low-dimensional topology · geometric group theory · differential geometry (topic level). *Anchors:* 13.1, 13.5.
### B16 · The Elements of Euclid, Greek–English (2007/08)
[record](https://farside.ph.utexas.edu/books/Euclid/Euclid.html) · [download](https://farside.ph.utexas.edu/Books/Euclid/Elements.pdf) · *public domain text; Fitzpatrick's edition free* · UT Austin
Euclid, tr. Fitzpatrick. Heiberg's Greek text with Fitzpatrick's English, by proposition. The primary source behind every Euclid citation on this page.
*Chapters cited:* Books I–XIII, by proposition (by proposition). *Anchors:* 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.1, 2.2, 2.3, 3.1, 3.2, 3.3, 3.4, 3.5, 6.1, 6.2, 7.1, 7.2, 7.3, 12.2.
### B17 · The Foundations of Geometry (1899/1902)
[record](https://www.gutenberg.org/ebooks/17384) · [download](https://www.gutenberg.org/files/17384/17384-pdf.pdf) · *public domain* · Project Gutenberg #17384
Hilbert, tr. Townsend. Hilbert's five groups of axioms, their independence, proportion, area, Desargues and Pascal, constructions. Station 1.1's second half — what Euclid used without asking.
*Chapters cited:* ch. I Five Groups of Axioms · II Independence · III Proportion · IV Plane Areas · V Desargues · VI Pascal · VII Constructions (from memory). *Anchors:* 1.1, 1.2, 1.4, 1.5, 1.6, 2.3, 3.4, 9.4, 9.6.
### B18 · Non-Euclidean Geometry (1901)
[record](https://www.gutenberg.org/ebooks/13702) · [download](https://www.gutenberg.org/files/13702/13702-pdf.pdf) · *public domain* · Project Gutenberg #13702
Manning. Pangeometry, the hyperbolic and elliptic planes, and analytic non-Euclidean geometry for a reader with plane geometry and trigonometry. Movement 10's classic voice.
*Chapters cited:* ch. I Pangeometry · II Hyperbolic · III Elliptic · IV Analytic non-Euclidean (from memory). *Anchors:* 1.5, 10.1, 10.2, 10.3.
### B19 · Geometry Revisited (1967)
*in copyright (MAA, New Mathematical Library 19)* · the catalogue's APROGED copy is not shelved; MTN to decide
Coxeter & Greitzer. Triangle geometry, circles, collinearity and concurrence, transformations, inversive and projective geometry. Movements 2, 3, 9 and 10 cite it for the theorems the variants are named after.
*Chapters cited:* ch. 1 Triangle · 2 Circles · 3 Collinearity & Concurrence · 4 Transformations · 5 Inversive · 6 Projective (verified). *Anchors:* 2.1, 2.2, 2.5, 3.1, 3.3, 4.4, 4.5, 4.6, 5.1, 5.2, 6.4, 9.1, 9.4, 9.5, 9.6, 10.4, 10.5, 10.6.
### B20 · Analytic Geometry (1922)
[download](https://djm.cc/library/Analytic_Geometry_Siceloff_Wentworth_Smith_edited.pdf) · *public domain (1922)* · djm.cc classic library
Siceloff, Wentworth & Smith. Loci and equations, lines, circles, conics, polar coordinates, higher plane curves, and solid analytic geometry. Movements 4 and 5's coordinate text.
*Chapters cited:* loci & equations · straight line · circle · transformation of coordinates · parabola · ellipse · hyperbola · conics in general · polar coordinates · higher plane curves · point, plane, line · surfaces (topic level). *Anchors:* 1.2, 2.4, 4.1, 4.2, 4.3, 5.1, 5.2, 5.3, 5.4, 11.1, 11.4.
## The engine, covered — three.js docs → stations
*Every geometry-relevant entry of the docs index and the stations that exercise it. Pack-level classes are used by every sim and are not listed per station.*
| Docs section | Class → stations |
|---|---|
| Core › Geometries | `BoxGeometry` → 2.2, 4.3, 6.2, 8.2, 15.5, 16.3 · `CapsuleGeometry` → 7.3 · `CircleGeometry` → 3.1, 3.3, 10.3 · `ConeGeometry` → 5.1, 7.2, 14.3 · `CylinderGeometry` → 4.6, 7.1, 7.2, 7.3, 15.5 · `DodecahedronGeometry` → 6.2, 13.7 · `EdgesGeometry` → 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 7.4, 7.5, 15.1 · `ExtrudeGeometry` → 2.3, 3.4, 3.5, 3.6, 7.1, 11.5 · `IcosahedronGeometry` → 6.2, 7.3, 7.4 · `LatheGeometry` → 5.2, 10.3, 12.2 · `OctahedronGeometry` → 6.2 · `PlaneGeometry` → 1.2, 1.5, 9.1, 9.4, 10.1, 10.4, 10.5, 10.6, 12.6 · `PolyhedronGeometry` → 4.6, 6.1, 6.3, 6.4, 6.6, 7.4, 7.5, 8.4 · `RingGeometry` → 3.1, 9.1 · `ShapeGeometry` → 2.2, 2.3, 3.3, 3.4, 8.4, 12.7, 14.2, 14.6 · `SphereGeometry` → 1.5, 5.1, 7.2, 7.3, 10.1, 10.2, 10.4, 10.6, 12.4, 12.6, 13.4, 13.6 · `TetrahedronGeometry` → 6.2, 16.2 · `TorusGeometry` → 4.4, 12.2, 12.3, 13.1, 13.3, 13.4, 13.6 · `TorusKnotGeometry` → 13.5 · `TubeGeometry` → 1.5, 2.4, 5.5, 8.5, 10.1, 10.2, 11.5, 11.6, 12.4, 13.2, 13.5, 16.4 · `WireframeGeometry` → 7.3, 15.1, 15.3 |
| Core › Extras (curves & shapes) | `ArcCurve` → 1.3, 1.6, 3.2 · `CatmullRomCurve3` → 2.4, 11.3 · `CubicBezierCurve` → 11.2 · `CubicBezierCurve3` → 11.2 · `Curve` → 8.5, 11.1, 11.4, 11.5, 11.6 · `CurvePath` → 1.6 · `Earcut` → 3.3, 14.2 · `EllipseCurve` → 1.1, 1.3, 2.1, 3.1, 3.2, 5.2, 9.6, 10.5, 11.4 · `LineCurve` → 1.6 · `LineCurve3` → 11.1 · `Path` → 1.6 · `QuadraticBezierCurve` → 11.2 · `QuadraticBezierCurve3` → 11.2 · `Shape` → 3.3, 3.5, 3.6, 11.2, 14.2, 14.6 · `ShapePath` → 11.2 · `ShapeUtils` → 3.3, 12.7, 14.2 · `SplineCurve` → 11.3, 12.2 · `Interpolations` → 11.2 |
| Core › Math | `Box2` → 3.6 · `Box3` → 3.6, 14.5 · `Cylindrical` → 4.1 · `Euler` → 4.4 · `Frustum` → 9.2, 14.5 · `FrustumArray` → 14.5 · `Line3` → 1.1, 1.2, 9.4, 9.5 · `MathUtils` → 1.3 · `Matrix2` → 4.3 · `Matrix3` → 4.3, 5.3, 9.6, 15.2, 16.5 · `Matrix4` → 1.4, 2.2, 2.3, 3.4, 3.5, 4.3, 4.5, 7.6, 8.1, 9.2, 9.3, 10.3, 13.7, 16.3, 16.5 · `Plane` → 1.2, 1.3, 4.1, 4.5, 5.1, 5.5, 5.6, 6.4, 6.5, 7.1, 7.2, 7.5, 9.4, 15.5, 16.3 · `Quaternion` → 1.4, 4.4, 4.6, 8.5, 10.2, 10.4, 10.6 · `Ray` → 1.1, 3.1, 5.2, 9.5, 10.4, 14.4 · `Sphere` → 14.5 · `Spherical` → 4.1, 10.2 · `SphericalHarmonics3` → *none yet* · `Triangle` → 1.4, 2.1, 2.3, 2.5, 14.4 · `Vector2` → 3.1, 4.2, 5.4, 10.5, 10.6, 12.2 · `Vector3` → 1.1, 1.2, 1.3, 2.1, 2.2, 4.1, 4.2, 5.2, 9.1, 9.3, 9.5, 9.6, 10.2, 11.2, 12.1, 13.6 · `Vector4` → 8.1, 8.2, 8.3, 9.3 · `CubicInterpolant` → 11.3 · `QuaternionLinearInterpolant` → 4.4 |
| Core › Core | `BufferAttribute` (pack) · `BufferGeometry` → 1.5, 1.6, 2.3, 2.5, 5.5, 5.6, 6.1, 6.2, 6.5, 8.2, 8.3, 10.3, 11.6, 12.3, 13.1, 13.2, 13.3, 13.4, 15.1, 15.2, 15.3, 16.1, 16.2 · `InstancedBufferGeometry` → 15.1 · `Object3D` (pack) · `Raycaster` → 2.5, 5.4, 12.4, 12.6, 13.4, 14.4 |
| Core › Cameras | `ArrayCamera` → 9.2 · `Camera` (pack) · `CubeCamera` → 9.2 · `OrthographicCamera` → 2.4, 9.2, 14.3, 16.1 · `PerspectiveCamera` → 8.1, 9.1, 9.2 · `StereoCamera` → 9.2 |
| Core › Helpers | `ArrowHelper` → 1.2, 4.2, 4.6, 5.2, 11.1, 11.4, 11.5, 12.4, 14.4 · `AxesHelper` → 4.1, 4.3 · `Box3Helper` → 14.5 · `BoxHelper` → 14.5 · `CameraHelper` → 9.1, 9.2 · `GridHelper` → 1.1, 4.1 · `PlaneHelper` → 1.2, 5.1, 9.3 · `PolarGridHelper` → 4.1 |
| Core › Objects | `BatchedMesh` → 15.6 · `ClippingGroup` → 5.1, 15.5 · `Group` → 3.4, 4.5, 6.6, 7.1, 15.5 · `InstancedMesh` → 3.5, 4.6, 7.5, 7.6, 8.3, 8.4, 8.5, 10.3, 10.5, 13.6, 13.7, 14.3, 15.6, 16.2, 16.3 · `LOD` → 15.6 · `Line` → 16.4 · `LineLoop` → 2.1, 3.3, 16.1 · `LineSegments` → 5.3, 5.4, 5.6, 8.1, 8.2, 8.3, 9.3, 9.4, 10.4, 11.4, 12.7, 14.6, 16.1 · `Mesh` (pack) · `Points` → 5.4, 12.6, 12.7, 14.1, 15.1, 16.2, 16.5 |
| Addons › Curves | `CinquefoilKnot` → 13.5 · `DecoratedTorusKnot4a` → 13.5 · `DecoratedTorusKnot4b` → 13.5 · `DecoratedTorusKnot5a` → 13.5 · `DecoratedTorusKnot5c` → 13.5 · `FigureEightPolynomialKnot` → 13.5 · `GrannyKnot` → 13.5 · `HeartCurve` → 11.1 · `HelixCurve` → 2.4, 11.1 · `KnotCurve` → 13.5 · `NURBSCurve` → 11.3 · `NURBSSurface` → 11.3 · `NURBSVolume` → 11.3 · `TorusKnot` → 13.5 · `TrefoilKnot` → 13.5 · `TrefoilPolynomialKnot` → 13.5 · `VivianiCurve` → 11.1 · `NURBSUtils` → 11.3 |
| Addons › Geometries | `BoxLineGeometry` → 4.1 · `ConvexGeometry` → 3.6, 6.1, 6.3, 6.4, 6.5, 7.6, 14.1 · `DecalGeometry` → 9.2 · `LoftGeometry` → 7.2, 12.1 · `ParametricGeometry` → 1.5, 5.3, 10.1, 12.1, 12.3, 12.4, 12.5, 13.2, 13.3 · `RoundedBoxGeometry` → 14.6 · `TeapotGeometry` → 11.2 · `TextGeometry` → 11.2 · `ParametricFunctions` → 12.1, 13.2, 13.3 |
| Addons › Math | `Capsule` → 14.5 · `ConvexHull` → 14.1, 14.3, 14.6 · `ImprovedNoise` → 15.4 · `Lut` → 12.3 · `MeshSurfaceSampler` → 13.6 · `OBB` → 14.5 · `Octree` → 14.5 · `SimplexNoise` → 16.5 |
| Addons › Modifiers | `EdgeSplitModifier` → 15.2 · `Flow` → 11.5 · `InstancedFlow` → 11.5 · `SimplifyModifier` → 15.6 · `TessellateModifier` → 15.3 |
| Addons › Objects | `MarchingCubes` → 5.3, 5.5, 12.5, 15.4 · `Reflector` → 4.5, 4.6 · `Refractor` → 5.2 |
| Addons › Lines | `Line2` (pack) · `LineGeometry` (pack) · `LineMaterial` (pack) · `LineSegments2` (pack) · `LineSegmentsGeometry` (pack) · `Wireframe` → 15.1 · `WireframeGeometry2` → 15.1 |
| Addons › Utils | `BufferGeometryUtils` → 7.4, 15.1, 15.3 · `GeometryUtils` → 16.4 · `CameraUtils` → 9.2 |
| Addons › Helpers | `VertexNormalsHelper` → 12.1, 15.2 · `VertexTangentsHelper` → 12.1 · `OctreeHelper` → 14.5 · `ViewHelper` (pack) |
| Addons › Controls | `ArcballControls` → 4.4 · `DragControls` → 1.1, 1.4, 2.1, 3.2, 9.6, 14.3, 14.6 · `FlyControls` → 13.7 · `OrbitControls` (pack) · `PointerLockControls` → 13.7 · `TrackballControls` (pack) · `TransformControls` → 4.3, 16.5 |
| Addons › Misc & Interactive | `ConvexObjectBreaker` → 14.1 · `Volume` → 15.4 · `VolumeSlice` → 15.4 · `SelectionBox` → 14.5 |
| Addons › Renderers | `CSS2DRenderer` (pack) · `SVGRenderer` → 1.6 |
*Not yet placed:* `SphericalHarmonics3` — lighting plumbing outside the spine's scope, or a variant to add at the pack pass.
*Three docs facts the stations lean on: `Curve.computeFrenetFrames` transports its frame in parallel (after Hanson & Ma) rather than computing true Frenet frames — station 11.5 shows both; `ShapeGeometry` triangulates through `ShapeUtils.triangulateShape` → `Earcut` — station 14.2 is that routine, stepped; and `Earcut` itself is documented but not exported from the `three` entry point, so sims reach it through `ShapeUtils` or a deep import.*
## The Outline, covered — topics → movements
| Outline section | Movements that carry it |
|---|---|
| Types, methodologies, and terminologies of geometry (51) | 1.1 Euclidean/Synthetic/Ordered · 1.5 Absolute · 3.6 Integral · 4.5 Transformation · 4.6 Klein · 5.4–5.6 Algebraic, Birational, Complex, Toric, Tropical, Enumerative · 7.1 Solid · 7.6 Discrete, Geometry of numbers · 9.1–9.4 Projective, Descriptive, Epipolar, Incidence, Finite, Affine · 10.1–10.6 Non-Euclidean, Elliptic, Spherical, Hyperbolic, Taxicab, Inversive, Conformal, Lie sphere · 11.5–12.7 Differential, Riemannian, Symplectic, Contact · 14.1 Computational, Convex · 15.4–15.5 Digital, Constructive solid · 16.1 Fractal |
| General geometry concepts — General concepts, Measurements, Trigonometric functions, Vectors, Vector spaces and complex dimensions, Symmetry, shape and pattern | 1.2 point, line, plane · 1.3 angle and its units · 2.2 similar triangles, shape · 2.4 unit circle, De Moivre, periodic functions · 3.1 circumference, diameter, π, sector, secant · 4.1 polar coordinates, complex plane, locus · 4.2 vectors, orthogonality · 4.4 angular velocity · 4.5 chirality, handedness · 4.6 symmetry, point groups, lattices, space groups · 8.1 four-dimensional space · 10.6 complex plane |
| Euclidean geometry foundations | 1.1 Hilbert's axioms · 1.2 line, segment, parallel · 1.3 the angle family · 1.4 congruence and the rigid motions · 1.5 parallels · 2.2 similarity, homothety · 4.3 shear · 4.4–4.5 rotation, reflection, glide |
| Euclidean plane geometry | 1.6 constructions and the impossibles · 2.1 the triangle family · 2.3 Pythagoras, integer triangles · 3.1–3.2 the circle family · 3.3 polygons and quadrilaterals · 3.4 dissection · 3.5 tessellation, frieze and wallpaper groups · 3.6 constant width, isoperimetry · 5.1–5.2 conics · 11.1 involutes, golden angle · 11.4 involute and evolute |
| 3-dimensional Euclidean geometry | 5.1 cross section, right circular cone · 5.2–5.3 paraboloid and its reflectors, hyperboloid, spheroid, ellipsoid · 6.1–6.6 the polyhedron family · 7.1–7.3 prism, pyramid, Cavalieri, napkin ring, the sphere · 7.5 honeycomb, crystal · 8.5 3-sphere · 9.2 3D projection, 3D computer graphics · 9.4 Desargues · 10.4 stereographic projection · 10.5 Soddy's hexlet · 12.2 Pappus · 13.5 Borromean rings · 14.1–14.5 Graham scan, ray tracing, BSP · 15.2 surface normal |
| n-dimensional Euclidean geometry | 2.2 homothetic centre · 2.5 convex · 3.3 Ehrhart · 4.6 Coxeter group, root system · 5.3 quadric · 7.3 ball, sphere · 7.5–7.6 packing, honeycomb, lattice, Voronoi, Delaunay, quasicrystal · 8.1–8.5 polytope, Schläfli, hypersphere, zonotope · 12.2 torus · 14.1 convex hull · 14.3 Voronoi, Delaunay |
| Other geometries (not Euclidean) | 9.1–9.6 the whole projective list, affine geometry · 10.1–10.6 non-Euclidean, hyperbolic (pseudosphere, tractricoid), elliptic, Minkowski spacetime, Möbius transformation · 12.3–12.7 differential, Riemannian, contact, symplectic · 13.7 Thurston's conjecture |
| Numerical geometry · Geometric algorithms | 11.1–11.3 parametric curves, Bézier, splines, Hermite, B-spline, NURBS · 12.1 parametric surface · 14.1 convex hull construction · 14.4 point in polygon, point location · 14.5 hidden-line removal · 14.6 Euclidean shortest path |
| History · Generalizations · Connections · Lists | History: the reading shelf below (articles only) · Generalizations: 13.1 topology · Connections: 1.6 Strähle · 9.2 computer graphics · 10.3 fiber arts · 11.1 Burmester · 14.6 robot control · 15.4 image analysis · Lists: 11.1 curves, 13.5 knots |
**Outline remainder** — the 37 section·topic pairs not placed as a station or variant, kept here so the audit is complete: *types (9)* Distance, Information, Systolic, Quantum, Ruppeiner, Noncommutative and Noncommutative-algebraic geometry, Parabolic geometry (differential), Projective line over a ring; *general concepts (4)* Coordinate-free, Infinitesimal transformation, Geometric progression, Velocity; *vectors (2)* Amplitude, Zero element; *vector spaces (4)* Imaginary number, Bijection, Zeros and poles, Number line; *plane (6)* Pedoe's inequality, the Outline of trigonometry and four list pages; *3-D (1)* Cuisenaire rods; *history (6)* the six pages on the reading shelf below; *generalizations (1)* Noncommutative geometry again; *connections (2)* Van Hiele model, Astronomy; and *(2)* the hub pages Geometry and Mathematics themselves. Two of those types — Information geometry and Distance geometry — would each make a station in a later wave; the rest are article-only by nature.
## Reading shelf — history and lists (articles only, no sims)
`History_of_geometry` · `Timeline_of_geometry` · `Babylonian_mathematics` · `Egyptian_geometry` · `Indian_mathematics` · `Bakhshali_manuscript` · `Euclid's_Elements` · `Measurement_of_a_Circle` · `On_the_Sphere_and_Cylinder` · `Erlangen_program` · `Regular_Polytopes_(book)` · `The_Fifty-Nine_Icosahedra` · `List_of_geometers` · `List_of_curves` — the Outline's History section and its book links, carried as forward-refs for the article pass; the Erlangen program is also the spine's own thesis (see the narrative above) and belongs in the flagship's lead.
## Crosslinks
Doors to adjacent rooms: [[PORTAL_Physics]] for `Spacetime`, general relativity and everything Part Five's curvature is for; [[PORTAL_Graph_theory]] for the `Seven_Bridges_of_Königsberg`, polyhedral graphs and the Euler characteristic seen as a graph invariant; [[PORTAL_Phase_space]] and [[PORTAL_Dynamical_system]] for symplectic geometry, [[Configuration_space_(physics)|configuration space]] and the [[Manifold|manifolds]] their flows live on; [[PORTAL_Signal_Processing]] for the helix behind the trigonometric functions and the Fourier machinery that follows; [[PORTAL_Operations_research]] for linear programming as a walk along a polytope's edges; [[PORTAL_Cellular_automaton]] for the tilings and hypercube neighbourhoods it already borrows from this spine; [[PORTAL_Aviation]] and [[PORTAL_Avionics]] for great-circle navigation, attitude quaternions and GPS trilateration; [[PORTAL_Acoustics]] for the Strähle construction and the whispering gallery; [[PORTAL_Energy]] for the parabolic reflector; [[PORTAL_Monte_Carlo_method]] for Buffon's needle. The Centers-of-Excellence crossings (descriptive geometry and the CAD kernel, involute gears and tool-radius offsets, great-circle routes, parabolic troughs, the graphics pipeline, marching cubes from CT, the township grid, centre-pivot circles, orbits as conics) are drafted for MTN's read in the run plan and hang off [[PORTAL_Centers_of_Excellence]]. Master index: [[PORTAL_INDEX]].
## Notes
Drafted 2026-09-17 and made publish-ready 2026-09-18 to the wt-portal rule "spine table first": nothing below the frontmatter has been built, and the tables are the contract for the run. The run plan — section map with pinned revisions, the portal pack and the `wt-geom` library, the bakes, the child-article actions, the adopt list and the decisions that wait on MTN — is `_registry/plans/GEOMETRY_SECTIONS.md` (unpublished, beside the other spine plans). Three sources were crossed and pinned in the frontmatter; all 792 article titles on this page were checked — 771 against the English Wikipedia API on 2026-09-17, the remaining 21 (the reading shelf, the door titles and four late variants) by page fetch on 2026-09-18, which caught one rename: the legacy `X-ray_computed_tomography.html` pairs with the article now titled *CT scan* — and each is an exact title, not a redirect and not a disambiguation page.
The ring has sixteen nodes, one per movement, each carrying the movement's lead station; the other 79 stations hang off their movement. 26 stations play a legacy stand-in today and 69 read *build target*; 7 station articles exist on the site (2 dense enough to place a sim into, 5 to densify), 88 are to be minted. The stand-ins come from the 151 Geometry-lane three.js builds on the sim host — all live; their registry rows in `_registry/microsim_index.tsv` are checked in the housekeeping pass, and no portal placed any of them as a station until this one. They keep playing until the framework sim for their station passes the bench, after which the generator promotes. Three embeds on existing pages answer 404 (`Polyhedron.html`, `Polytope.html`, `Tessellation.html`) and are the first housekeeping rows below.
The book shelf follows the Apex Spine's: each book seeds stations rather than stubs, because the spine was drawn from the books rather than the books hung on the spine. Two catalogue entries (B09, B19) are in-copyright books hosted by third parties; they are cited by record only and are not shelved. The `Portal Books/PORTAL_Geometry/` folder is empty until the download pass runs on a networked lane (this lane's VM has no route to the hosts). The p5.js shelf — 19 published sketches from `wiki/Geometry.md` — is the second engine for Part One and plays in the worklist block. The Signal Processing spine's convention is kept for station rows: a backticked slug is a build target, a wikilink is a page on the site; the worklist block below uses the house row grammar with wikilinks, so its red links are the build-next list. `wiki/Geometry.md` stays the 150-priority worklist page until the flagship pass rewrites it as an ordinary 1:1 hub article at flagship density; it is not a WT! page, so no MTN edit authorization is needed, but this spine wants his read first.
<!-- SIMGALLERY:BEGIN v1.0 g13 — generated iframe set; do not hand-edit inside -->
## Play every microsim on this page
<p class="microsim-gallery-note">Gallery pending — run g13 once the adopt rows of the worklist exist in the registry; until then the players live in the station tables above and in the adopt table below.</p>
<!-- SIMGALLERY:END -->
<!-- CRAFT-LINK:START g12 -->
**Craft standard:** Both craft standards apply here — [[WT!Three_js_Microsim_Master_Class|three.js]] first, [[WT!P5_js_Microsim_Master_Class|p5.js]] for the Part One shelf.
<!-- CRAFT-LINK:END -->
<!-- WT:REPOP 2026-09-18 begin -->
## Workproduct and work list
The spine is drawn and the page already plays a great deal; the Geometry sim set itself has barely started. Those
are two different facts, and this section keeps them apart.
**What the page plays today.** Sixteen shelves carry **172 distinct microsims**, gathered from work that already
existed rather than built for this spine: **149** are three.js builds living in the base set on the sim host — the
plan's audit counted 151 Geometry-lane builds there, so the page reaches all but two — **20** are published p5.js
sketches, and three are borrowed from the `/solar/`, `/matter/` and `/geometry/` sets. Every one answered 200 on
2026-09-19.
**What the spine asks for.** Six parts, sixteen movements, **95 stations**, each wanting one verified child article
and one three.js microsim of its own, plus 680 See-also variants across 742 placements, sized into four waves of
23-25 stations.
**Where the build actually stands.** One station sim exists: `Polyhedron.html` in `_3d_deploy_stage/geometry/`. The
framework tier the other 94 depend on is not written — there is no `specs/portals/PORTAL_Geometry.pack.json` and no
`libs/wt-geom.js` — and `_registry/plans/GEOMETRY_SECTIONS.md` still reads *status: contract — awaiting MTN's read
before any sim is built*. So the 172 sims above are adopted work, not spine work, and the spine proper is 1 of 95.
| | count | state |
|---|---|---|
| Stations in the spine | 95 | designed, revisions pinned |
| Station sims built in `/geometry/` | 1 | `Polyhedron` |
| Sims the page plays today (adopted) | 172 | live, 200-checked |
| — base-set Geometry-lane builds | 149 | live |
| — p5.js sketches | 20 | live |
| — borrowed from other sets | 3 | live |
| See-also variants planned | 680 | not started |
| Framework pack and library | 0 of 2 | `PORTAL_Geometry.pack.json`, `wt-geom.js` |
**Totals:** 95 stations · 1 station sim built · 172 adopted sims playing · 0 of 4 waves run · the pack and
`wt-geom.js` still to write. The plan is `_registry/plans/GEOMETRY_SECTIONS.md`; the per-wave queue is the
**Worklist** below.
## Spine
<!-- Ordered. The ring has sixteen nodes, one per movement, each carrying the movement's lead station; the other stations hang off their movement in the tables below. Microsim = the framework sim slug the pack will ship (set `geometry`); stand-ins play in the movement tables. -->
| # | Article | Reveal | Microsim | Node |
|---|---------|--------|----------|------|
| 1 | [[Euclidean_geometry]] | three | geometry/Euclidean_geometry | ring:0 |
| 2 | [[Triangle]] | three | geometry/Triangle | ring:1 |
| 3 | [[Circle]] | three | geometry/Circle | ring:2 |
| 4 | [[Analytic_geometry]] | three | geometry/Analytic_geometry | ring:3 |
| 5 | [[Conic_section]] | three | geometry/Conic_section | ring:4 |
| 6 | [[Polyhedron]] | three | geometry/Polyhedron | ring:5 |
| 7 | [[Prism_(geometry)]] | three | geometry/Prism_(geometry) | ring:6 |
| 8 | [[Four-dimensional_space]] | three | geometry/Four-dimensional_space | ring:7 |
| 9 | [[Projective_geometry]] | three | geometry/Projective_geometry | ring:8 |
| 10 | [[Non-Euclidean_geometry]] | three | geometry/Non-Euclidean_geometry | ring:9 |
| 11 | [[Parametric_equation]] | three | geometry/Parametric_equation | ring:10 |
| 12 | [[Parametric_surface]] | three | geometry/Parametric_surface | ring:11 |
| 13 | [[Topology]] | three | geometry/Topology | ring:12 |
| 14 | [[Convex_hull]] | three | geometry/Convex_hull | ring:13 |
| 15 | [[Polygon_mesh]] | three | geometry/Polygon_mesh | ring:14 |
| 16 | [[Fractal]] | three | geometry/Fractal | ring:15 |
## Worklist · added 2026-09-18
The spine's build queue, legible from the page. Each row pairs with the English Wikipedia article of the same title; the **Row** id (GEO-001 … GEO-095, in spine order) is what agents will claim through the parallel queue once the shard `worklists/PORTAL_Geometry.worklist.md` is cut from this table (housekeeping row H3) — until then no agent claims a row. Blue links already have an article here; red links are the build-next list. Rows are grouped by wave; a row's stand-in, where one exists, is the legacy build named in the station table above.
### Wave 1 — Movements 1, 2, 3, 6 (23 stations)
| Row | Article | Microsim equation | What the viewer does |
|-----|---------|-------------------|----------------------|
| GEO-001 | [[Euclidean_geometry]] | `alpha + beta < 180 deg => the two lines meet (Postulate 5)` | tilt a transversal until the two interior angles fall under 180 degrees; the meeting point races in from infinity |
| GEO-002 | [[Plane_(mathematics)]] | `n.(p - p0) = 0; three planes meet in a point iff det[n1 n2 n3] != 0` | drag three points to span a plane; add planes and watch the meeting point run off when the normals go coplanar |
| GEO-003 | [[Angle]] | `theta_rad = s/r; 1 turn = 360 deg = 2*pi rad` | open one angle and read it in degrees, turns, slope and radians; hinge two planes to see where a dihedral angle is honest |
| GEO-004 | [[Congruence_(geometry)]] | `T(x) = R*x + t with det R = +1 or -1` | grab one triangle and watch the sim find the slide, turn and flip onto the other; switch to SSA and get two triangles |
| GEO-005 | [[Parallel_postulate]] | `angle sum - pi = K*A: > 0 on the sphere, = 0 on the plane, < 0 on the saddle` | bend the ground from sphere to plane to saddle; count the parallels through a point and read the angle sum |
| GEO-006 | [[Straightedge_and_compass_construction]] | `constructible x => [Q(x):Q] = 2^k (cube root of 2 and cos 20 deg fail it)` | replay a construction as a tape of arcs and strokes; trisect with the marked ruler and square the circle with the quadratrix |
| GEO-007 | [[Triangle]] | `A = \|AB x AC\|/2; alpha + beta + gamma = 180 deg` | drag a vertex; the angle sum holds, the sheared area holds, the Euler line follows the centres |
| GEO-008 | [[Similarity_(geometry)]] | `lengths scale by k, areas by k^2, volumes by k^3` | pick a centre and a ratio; watch lengths, areas and volumes scale by k, k^2, k^3 |
| GEO-009 | [[Pythagorean_theorem]] | `a^2 + b^2 = c^2` | shear the two leg squares into the square on the hypotenuse; switch to de Gua in 3-D |
| GEO-010 | [[Trigonometric_functions]] | `(cos t, sin t, t) is a helix; cos^2 t + sin^2 t = 1` | wind the unit circle into a helix and drop three axis-locked shadows: sine, cosine, the circle |
| GEO-011 | [[Barycentric_coordinate_system]] | `P = a*A + b*B + c*C with a + b + c = 1` | drag a point inside the triangle; three weights update and the GPU blends three vertex colours the same way |
| GEO-012 | [[Circle]] | `PA*PB = \|PO\|^2 - r^2 (power of a point)` | slide a point across the circle's edge; the chord product stays equal to the power, through tangency, then changes sign inside |
| GEO-013 | [[Inscribed_angle]] | `inscribed angle = central angle / 2` | slide the vertex round the arc; the angle holds, hits 90 degrees on the diameter, and jumps to its supplement past the chord |
| GEO-014 | [[Polygon]] | `A = (1/2)*sum(x_i*y_(i+1) - x_(i+1)*y_i); 96-gon: 3.1408 < pi < 3.1429` | fan an n-gon from its centre, step n up to 96 and squeeze pi between the inscribed and circumscribed perimeters |
| GEO-015 | [[Wallace–Bolyai–Gerwien_theorem]] | `equal area <=> scissors-congruent in the plane; the Dehn invariant obstructs in space` | cut one polygon into hinged pieces and swing them into another of equal area; try a cube and a tetrahedron and fail |
| GEO-016 | [[Tessellation]] | `sum of the face angles at every vertex = 360 deg` | toggle the 8 semiregular tilings and the 17 wallpaper groups; break the vertex rule and watch the gap open; lay Penrose tiles |
| GEO-017 | [[Curve_of_constant_width]] | `perimeter = pi*w for every curve of constant width w (Barbier)` | roll a Reuleaux triangle between two plates; the gap never changes; drop Buffon's noodle to measure the perimeter |
| GEO-030 | [[Polyhedron]] | `V - E + F = 2` | drag vertices, cut corners, punch a hole; V - E + F stays 2 until the hole takes it to 0 |
| GEO-031 | [[Platonic_solid]] | `{p,q} closes iff 1/p + 1/q > 1/2` | dial p and q; only five pairs close; morph each solid into its dual through the midsphere |
| GEO-032 | [[Archimedean_solid]] | `truncation depth t in [0,1]: cube -> truncated cube -> cuboctahedron` | slide the truncation depth through the family; cantellate and snub the result |
| GEO-033 | [[Dual_polyhedron]] | `polar reciprocation: plane n.x = d <-> point n/d` | reciprocate a solid in a sphere; faces become vertices; the Catalan solids fall out of the Archimedeans |
| GEO-034 | [[Stellation]] | `extend the face planes; cells sorted by density` | extend the icosahedron's face planes and step through the stellation cells; count to 59 |
| GEO-035 | [[Johnson_solid]] | `all faces regular, not uniform: exactly 92 solids` | glue pyramids, cupolae and rotundae onto prisms and each other; the sim checks regularity and names the solid; the nine elementary ones come ready-made |
### Wave 2 — Movements 4, 5, 7, 8 (23 stations)
| Row | Article | Microsim equation | What the viewer does |
|-----|---------|-------------------|----------------------|
| GEO-018 | [[Analytic_geometry]] | `ax + by + cz = d; distance = \|a*x0 + b*y0 + c*z0 - d\|/sqrt(a^2 + b^2 + c^2)` | drag lines and planes and read their live equations in Cartesian, polar, cylindrical and spherical coordinates |
| GEO-019 | [[Euclidean_vector]] | `a.b = \|a\|\|b\|cos(theta); \|a x b\| = \|a\|\|b\|sin(theta)` | drag two arrows; the dot product shows as a shadow, the cross product as an oriented parallelogram |
| GEO-020 | [[Transformation_matrix]] | `x' = M*x; det M = the volume factor, sign = orientation` | edit a 4x4 matrix cell by cell and watch the unit cube shear, scale and flip; swap the order of two matrices |
| GEO-021 | [[Rotation_(mathematics)]] | `q = (cos(t/2), sin(t/2)*axis); slerp(q0, q1, s)` | spin three Euler gimbals into lock, then switch to a quaternion and slerp cleanly between two orientations |
| GEO-022 | [[Reflection_(mathematics)]] | `reflection in two lines meeting at angle t = rotation by 2t` | place two mirrors and drag their angle; the composed motion is a rotation by twice the angle; count the kaleidoscope images |
| GEO-023 | [[Symmetry_group]] | `\|D_n\| = 2n; \|T\| = 12, \|O\| = 24, \|I\| = 60 (rotations only)` | toggle a solid's rotation axes and mirror planes; the sim counts the group's elements and names it |
| GEO-024 | [[Conic_section]] | `conic = plane cut of a double cone; e = PF/PD` | tilt a cutting plane through a double cone: circle, ellipse, parabola, hyperbola; drop in the Dandelin spheres |
| GEO-025 | [[Focus_(geometry)]] | `PF = e*PD: e < 1 ellipse, e = 1 parabola, e > 1 hyperbola` | slide the eccentricity; the focal ray fan reflects to the other focus, to infinity, then away |
| GEO-026 | [[Quadric]] | `x^T*A*x + b^T*x + c = 0; the eigenvalue signs of A name the surface` | flip the eigenvalue signs of a 3x3 form and morph through the quadrics; find the two rulings on the hyperboloid |
| GEO-027 | [[Algebraic_curve]] | `y^2 = x^3 + a*x + b; smooth iff 4a^3 + 27b^2 != 0` | slide a and b through the oval, the node and the cusp; add two points by chord and tangent |
| GEO-028 | [[Algebraic_variety]] | `V(I) = {x : f(x) = 0 for every f in I}` | type polynomials and the variety appears; union and intersection of ideals show as union and intersection of surfaces |
| GEO-029 | [[Cubic_surface]] | `Clebsch: x^3 + y^3 + z^3 + w^3 = (x + y + z + w)^3, 27 real lines` | orbit the Clebsch surface with its 27 lines lit; slide toward Cayley's four nodes and watch lines coincide |
| GEO-036 | [[Prism_(geometry)]] | `V_prism = B*h; V_pyramid = B*h/3; V_frustum = h*(A1 + sqrt(A1*A2) + A2)/3` | cut a triangular prism into three pyramids of equal volume; twist the top into an antiprism; slice a frustum |
| GEO-037 | [[Cavalieri's_principle]] | `equal cross-sections at every height => equal volumes` | shear a stack of coins; compare hemisphere slices with cylinder-minus-cone slices at every height |
| GEO-038 | [[Sphere]] | `V = (4/3)*pi*r^3; A = 4*pi*r^2; band area = 2*pi*r*h` | slice a sphere into bands of equal height and find every band has equal area; compare the UV, ico and cube spheres |
| GEO-039 | [[Geodesic_polyhedron]] | `F = 20*nu^2 triangles; always 12 pentagons` | raise the frequency of a geodesic dome; the faces count 20*nu^2 and the twelve pentagons never leave |
| GEO-040 | [[Honeycomb_(geometry)]] | `cube, hexagonal prism, rhombic dodecahedron, truncated octahedron fill space` | clip a space-filling with a plane; compare Kelvin's foam with Weaire-Phelan by surface area |
| GEO-041 | [[Sphere_packing]] | `FCC density = pi/(3*sqrt(2)) = 0.7405; kissing number 12` | stack spheres in FCC and HCP layers; count the twelve kissing neighbours; inflate them into Voronoi cells |
| GEO-042 | [[Four-dimensional_space]] | `\|x\|^2 = x^2 + y^2 + z^2 + w^2; rotations turn in six planes` | extrude a cube along w into a tesseract; rotate in the xw-plane and watch the shadow turn inside out |
| GEO-043 | [[Tesseract]] | `V = 16, E = 32, F = 24, C = 8` | fold eight cubes into a tesseract along the fourth axis; count vertices, edges, faces and cells |
| GEO-044 | [[Regular_4-polytope]] | `{p,q,r} finite iff sin(pi/p)*sin(pi/r) > cos(pi/q)` | step through the six regular 4-polytopes in perspective and Schlegel projection; open the Schlegel window on the 120-cell |
| GEO-045 | [[Schläfli_symbol]] | `{p,q}: 1/p + 1/q > 1/2 finite, = 1/2 flat, < 1/2 hyperbolic` | dial p, q and r; the sim sorts each symbol into finite, flat or hyperbolic and draws what it can |
| GEO-046 | [[Hopf_fibration]] | `S^3 -> S^2 with circle fibres; any two fibres link once` | pick points on the 2-sphere; each lights a linked circle in 3-space; sweep a latitude to fill a torus |
### Wave 3 — Movements 9, 10, 13, 16 (24 stations)
| Row | Article | Microsim equation | What the viewer does |
|-----|---------|-------------------|----------------------|
| GEO-047 | [[Projective_geometry]] | `parallel lines meet at a point at infinity` | walk rails to the horizon; drag a ground circle until its image is each conic in turn |
| GEO-048 | [[3D_projection]] | `x' = f*x/z, y' = f*y/z; clip cube [-1,1]^3` | squash the camera frustum into the clip cube; slide between perspective and orthographic |
| GEO-049 | [[Homogeneous_coordinates]] | `(x, y, w) ~ (k*x, k*y, k*w); w = 0 is infinity` | drag a point in 3-space and see it as a line through the origin; send w to zero and watch it settle at infinity |
| GEO-050 | [[Desargues's_theorem]] | `in perspective from a point => in perspective from a line` | move two triangles in perspective from a point; the three side-intersections stay on one line; then flatten the 3-D proof |
| GEO-051 | [[Cross-ratio]] | `(A,B;C,D) = (AC*BD)/(BC*AD) is invariant under projection` | move the eye and the screen; four points slide but one number stays fixed |
| GEO-052 | [[Duality_(projective_geometry)]] | `point (a,b,c) <-> line a*x + b*y + c*z = 0` | drag a pole and watch its polar; dualise Pascal's hexagon into Brianchon's |
| GEO-053 | [[Non-Euclidean_geometry]] | `angle sum = pi + K*A` | draw one triangle on the sphere, the plane and the saddle; grow it and watch the angle sum drift |
| GEO-054 | [[Spherical_geometry]] | `area = R^2*(A + B + C - pi)` | drag three points on a globe; the triangle's area reads as its angle excess; great circles are the straight lines |
| GEO-055 | [[Hyperbolic_geometry]] | `ds^2 = 4*(dx^2 + dy^2)/(1 - r^2)^2 in the Poincare disc` | project the hyperboloid into the Klein and Poincare models; tile with heptagons; slide a point to the boundary |
| GEO-056 | [[Stereographic_projection]] | `(x, y, z) -> (x/(1 - z), y/(1 - z))` | shine a lamp from the pole; circles go to circles; slide Greenland up and watch it balloon |
| GEO-057 | [[Inversive_geometry]] | `\|OP\|*\|OP'\| = r^2` | invert a picture in a circle; run Steiner's porism; drive the Peaucellier linkage |
| GEO-058 | [[Möbius_transformation]] | `f(z) = (a*z + b)/(c*z + d) with a*d - b*c != 0` | move a sphere above the plane; each rigid motion projects down to a Mobius map; drag a, b, c and d |
| GEO-072 | [[Topology]] | `homeomorphism = continuous bijection with continuous inverse` | morph a mug into a doughnut; try the ball and watch it refuse |
| GEO-073 | [[Möbius_strip]] | `one side, one edge; chi = 0` | walk an ant along the centre line and come back flipped; cut down the middle, then at a third |
| GEO-074 | [[Surface_(topology)]] | `chi = 2 - 2g (orientable), chi = 2 - k (non-orientable)` | glue the edges of a square four ways: torus, Klein bottle, projective plane, sphere |
| GEO-075 | [[Gauss–Bonnet_theorem]] | `integral K dA = 2*pi*chi` | dent the sphere; the total curvature stays 4*pi; sum a polyhedron's angle defects to 720 degrees |
| GEO-076 | [[Knot_theory]] | `(p,q) torus knot; a link when gcd(p,q) > 1` | dial p and q on a torus knot; watch it split into a link when they share a factor; mirror the trefoil |
| GEO-077 | [[Hairy_ball_theorem]] | `sum of the zero indices = chi = 2 on the sphere` | comb a vector field on the sphere and find the bald spot; comb the torus flat |
| GEO-078 | [[Shape_of_the_universe]] | `Omega = rho/rho_c; a flat 3-torus identifies opposite faces` | fly through a 3-torus and meet yourself; switch to the dodecahedral space and feel the twist |
| GEO-091 | [[Fractal]] | `D = log N / log(1/r)` | iterate the Koch coastline; plot log N against log 1/r and read the slope 1.26 |
| GEO-092 | [[Sierpiński_triangle]] | `D = log 3 / log 2 = 1.585` | play the chaos game in 2-D and 3-D; the tetrahedral version has dimension exactly 2 |
| GEO-093 | [[Menger_sponge]] | `D = log 20 / log 3 = 2.727` | raise the level of a Menger sponge built from instanced boxes; cut it on the diagonal to find the hexagram |
| GEO-094 | [[Space-filling_curve]] | `neighbours in time stay neighbours in space` | raise the order of a 3-D Hilbert curve; colour it by time and watch neighbours in time stay neighbours in space |
| GEO-095 | [[Iterated_function_system]] | `A = union of w_i(A) for contractions w_i` | draw four affine maps as parallelograms; iterate to the fern; deform them into the Sierpinski gasket |
### Wave 4 — Movements 11, 12, 14, 15 (25 stations)
| Row | Article | Microsim equation | What the viewer does |
|-----|---------|-------------------|----------------------|
| GEO-059 | [[Parametric_equation]] | `r(t) = (x(t), y(t), z(t)); speed = \|r'(t)\|` | run a point along a curve with a clock; compare getPoint with getPointAt; load the classic curves |
| GEO-060 | [[Bézier_curve]] | `B(t) = sum C(n,i)*(1 - t)^(n - i)*t^i*P_i` | drag control points; watch de Casteljau's lerps meet at the curve; step up to the teapot |
| GEO-061 | [[Spline_(mathematics)]] | `C(u) = sum N_(i,p)(u)*w_i*P_i / sum N_(i,p)(u)*w_i` | compare Catmull-Rom flavours through the same points; give a NURBS the weights that draw a true circle |
| GEO-062 | [[Curvature]] | `kappa = \|r' x r''\|/\|r'\|^3; R = 1/kappa` | ride the osculating circle along a curve; trace the evolute and unwind the involute |
| GEO-063 | [[Frenet–Serret_formulas]] | `T' = kappa*N; N' = -kappa*T + tau*B; B' = -tau*N` | compare the true Frenet frame with three.js's parallel-transport frame on the same tube; find where they disagree |
| GEO-064 | [[Elastica_theory]] | `E = (1/2)*integral kappa^2 ds, minimised at fixed length` | slide the load on a bent rod through Euler's family of elastic curves; the Euler spiral appears as the linearised case |
| GEO-065 | [[Parametric_surface]] | `r(u, v); n = r_u x r_v` | paint a (u,v) grid on a surface; drag the point; the tangent plane and the normal the shader lights follow |
| GEO-066 | [[Surface_of_revolution]] | `V = 2*pi*R_A*A; S = 2*pi*R_L*L (Pappus, two different centroids)` | draw a profile and spin it into a LatheGeometry; volume and area read off Pappus's two centroids |
| GEO-067 | [[Gaussian_curvature]] | `K = kappa_1*kappa_2` | colour a torus by K; bend a sheet of paper and watch its colour stay at zero |
| GEO-068 | [[Geodesic]] | `nabla_T T = 0 (no tangential acceleration)` | shoot straightest paths across a surface; carry a vector round a triangle and measure the holonomy |
| GEO-069 | [[Minimal_surface]] | `H = (kappa_1 + kappa_2)/2 = 0` | morph the catenoid into the helicoid; raise a gyroid by marching cubes; every point is a saddle |
| GEO-070 | [[Manifold]] | `phi_2 o phi_1^(-1) is smooth on the overlap of two charts` | drag a point across two charts of a sphere; the transition map shows the coordinates change |
| GEO-071 | [[Symplectic_geometry]] | `omega = sum dp_i ^ dq_i is preserved by the flow` | push a blob of initial states through a Hamiltonian flow; its area never changes |
| GEO-079 | [[Convex_hull]] | `Graham scan in O(n log n); the hull is the smallest convex set` | step Graham scan point by point; in 3-D watch quickhull grow a horizon |
| GEO-080 | [[Polygon_triangulation]] | `n - 2 triangles; floor(n/3) guards always suffice` | clip ears off a polygon one at a time (this is Earcut); 3-colour the triangulation to place the guards |
| GEO-081 | [[Voronoi_diagram]] | `V_i = {x : \|x - p_i\| <= \|x - p_j\| for all j}` | drop cones from the sites and read the Voronoi diagram off the depth buffer; lift to the paraboloid for Delaunay |
| GEO-082 | [[Point_in_polygon]] | `odd crossing count <=> inside; winding number != 0 <=> inside` | drag a point through a self-crossing polygon; compare the crossing count with the winding number; fire a ray at a triangle |
| GEO-083 | [[Bounding_volume_hierarchy]] | `query cost ~ O(log n) with tight bounding volumes` | wrap boxes in boxes; trade sphere, AABB and OBB; cull against the camera frustum |
| GEO-084 | [[Motion_planning]] | `C_obs = O (+) (-R), the Minkowski sum` | fatten the obstacles by the robot's shape; pull a string tight through the visibility graph |
| GEO-085 | [[Polygon_mesh]] | `three indices per triangle; unindexed = three vertices per triangle` | put positions and indices on the bench; flip the winding and watch back-face culling eat a face |
| GEO-086 | [[Normal_(geometry)]] | `n = (r_u x r_v)/\|r_u x r_v\|; n' = (M^(-1))^T*n` | switch face and vertex normals; scale non-uniformly and watch wrongly transformed normals break the lighting |
| GEO-087 | [[Subdivision_surface]] | `Catmull-Clark limit surface is C2 away from extraordinary vertices` | subdivide a cube toward its limit surface; compare Catmull-Clark and Loop; crease an edge |
| GEO-088 | [[Marching_cubes]] | `2^8 = 256 cube cases fold to 15 by symmetry` | threshold a scalar field; step the fifteen cases; blend metaballs and slice a CT stack |
| GEO-089 | [[Constructive_solid_geometry]] | `A union B, A intersect B, A minus B on closed solids` | rebuild a boolean tree live; swap union, intersection and difference at any node |
| GEO-090 | [[Level_of_detail_(computer_graphics)]] | `edge collapse (v1, v2) -> v; switch level by screen-space error` | collapse edges to simplify a mesh; move the camera and watch the LOD switch |
### Adopt — the 151 Geometry-lane three.js builds already live on the sim host
<!-- SECTIONSIMS:BEGIN g34 2026-09-19 - microsims the articles linked here play; generated by _tools/generate/g34_portal_section_sims.py; do not hand-edit inside -->
*Microsims from the articles this section links:*
<div class="wt-simrow">
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/120_cell_microsim.html" data-title="120 cell"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/16-cell_microsim.html" data-title="16-cell"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/24-cell_microsim.html" data-title="24-cell"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/4-polytope_microsim.html" data-title="4-polytope"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/5-cell_microsim.html" data-title="5-cell"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/600_cell_microsim.html" data-title="600 cell"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Angle_bisector_theorem_microsim.html" data-title="Angle bisector theorem"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Angle_trisection_microsim.html" data-title="Angle trisection"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Apollonian_circles_microsim.html" data-title="Apollonian circles"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/apollonian_gasket_microsim.html" data-title="apollonian gasket"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Apollonius_theorem_microsim.html" data-title="Apollonius theorem"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Cantor_set_microsim.html" data-title="Cantor set"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/central_angle_microsim.html" data-title="central angle"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Circumscribed_circle_microsim.html" data-title="Circumscribed circle"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/compound_of_five_cubes_microsim.html" data-title="compound of five cubes"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/cone_microsim.html" data-title="cone"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Configuration_Space_Physics.html" data-title="Configuration Space Physics"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Convex_polygon_microsim.html" data-title="Convex polygon"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Cotangent_bundle.html" data-title="Cotangent bundle"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/cross_polytope_microsim.html" data-title="cross polytope"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/crossbar_theorem_microsim.html" data-title="crossbar theorem"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Cube_microsim.html" data-title="Cube"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/cuboctahedron_microsim.html" data-title="cuboctahedron"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/cylinder_microsim.html" data-title="cylinder"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Disdyakis_dodecahedron_microsim.html" data-title="Disdyakis dodecahedron"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Disdyakis_triacontahedron_microsim.html" data-title="Disdyakis triacontahedron"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Dodecahedron_microsim.html" data-title="Dodecahedron"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Doubling_the_cube_microsim.html" data-title="Doubling the cube"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Equilateral_triangle_microsim.html" data-title="Equilateral triangle"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Euclidean_tilings_by_convex_regular_polygons_microsim.html" data-title="Euclidean tilings by convex regular polygons"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Euler_characteristic_microsim.html" data-title="Euler characteristic"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Euler_polyhedral_formula_microsim.html" data-title="Euler polyhedral formula"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Exterior_angle_theorem_microsim.html" data-title="Exterior angle theorem"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/figure_eight_knot_mathematics_microsim.html" data-title="figure eight knot mathematics"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/figure_eight_knot_microsim.html" data-title="figure eight knot"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Geometric_mean_theorem_microsim.html" data-title="Geometric mean theorem"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Goldberg_polyhedron_microsim.html" data-title="Goldberg polyhedron"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Gyrobifastigium_microsim.html" data-title="Gyrobifastigium"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/heptagonal_tiling_microsim.html" data-title="heptagonal tiling"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/heron_formula_microsim.html" data-title="heron formula"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Hinge_theorem_microsim.html" data-title="Hinge theorem"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Icosahedron_microsim.html" data-title="Icosahedron"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/icosidodecahedron_microsim.html" data-title="icosidodecahedron"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Identity_Matrix.html" data-title="Identity Matrix"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Incircle_and_excircles_of_a_triangle_microsim.html" data-title="Incircle and excircles of a triangle"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/inscribed_angle_theorem_microsim.html" data-title="inscribed angle theorem"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/intercept_theorem_microsim.html" data-title="intercept theorem"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/intersecting_chords_theorem_microsim.html" data-title="intersecting chords theorem"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Kepler_Poinsot_polyhedron_microsim.html" data-title="Kepler Poinsot polyhedron"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/keplerpoinsot.html" data-title="keplerpoinsot"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Keplers_laws_of_planetary_motion.html" data-title="Keplers laws of planetary motion"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/klein_bottle.html" data-title="klein bottle"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/klein_bottle_microsim.html" data-title="klein bottle (2)"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/law_of_cosines_microsim.html" data-title="law of cosines"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Law_of_sines_microsim.html" data-title="Law of sines"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/lemniscate_microsim.html" data-title="lemniscate"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Lie_Group.html" data-title="Lie Group"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/lune_of_hippocrates_microsim.html" data-title="lune of hippocrates"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Menelaus_theorem_microsim.html" data-title="Menelaus theorem"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/mobius_strip.html" data-title="mobius strip"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/nearmiss.html" data-title="nearmiss"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Neusis_construction_microsim.html" data-title="Neusis construction"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Octahedral_group_microsim.html" data-title="Octahedral group"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Octahedron_microsim.html" data-title="Octahedron"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/on_spirals_microsim.html" data-title="on spirals"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Order-5_square_tiling_microsim.html" data-title="Order-5 square tiling"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Order-7_triangular_tiling_microsim.html" data-title="Order-7 triangular tiling"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/order_4_pentagonal_tiling_microsim.html" data-title="order 4 pentagonal tiling"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Pappus_area_theorem_microsim.html" data-title="Pappus area theorem"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Pentagonal_bipyramid_microsim.html" data-title="Pentagonal bipyramid"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Pentagonal_cupola_microsim.html" data-title="Pentagonal cupola"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Pentagonal_hexecontahedron_microsim.html" data-title="Pentagonal hexecontahedron"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Pentagram_microsim.html" data-title="Pentagram"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Polycube_microsim.html" data-title="Polycube"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Polygonal_modeling_microsim.html" data-title="Polygonal modeling"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Polygonal_net_microsim.html" data-title="Polygonal net"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Polyomino_microsim.html" data-title="Polyomino"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Pons_asinorum_microsim.html" data-title="Pons asinorum"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/prime_knot_microsim.html" data-title="prime knot"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Prince_Ruperts_cube_microsim.html" data-title="Prince Ruperts cube"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Problem_of_Apollonius_microsim.html" data-title="Problem of Apollonius"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/ptolemy_theorem_microsim.html" data-title="ptolemy theorem"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/quadratrix_of_hippias_microsim.html" data-title="quadratrix of hippias"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Quaternion.html" data-title="Quaternion"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/real_projective_plane_microsim.html" data-title="real projective plane"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/rhombicuboctahedron_microsim.html" data-title="rhombicuboctahedron"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/schlegel_diagram_microsim.html" data-title="schlegel diagram"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/small_stellated_dodecahedron_microsim.html" data-title="small stellated dodecahedron"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Snub_disphenoid_microsim.html" data-title="Snub disphenoid"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Soma_cube_microsim.html" data-title="Soma cube"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/spiral_of_theodorus_microsim.html" data-title="spiral of theodorus"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/square_tiling_microsim.html" data-title="square tiling"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Squaring_the_circle_microsim.html" data-title="Squaring the circle"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Star_polygon_microsim.html" data-title="Star polygon"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Stellated_octahedron_microsim.html" data-title="Stellated octahedron"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Szilassi_polyhedron_microsim.html" data-title="Szilassi polyhedron"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/tangent_secant_theorem_microsim.html" data-title="tangent secant theorem"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/tesseract.html" data-title="tesseract"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Tetrahedron_microsim.html" data-title="Tetrahedron"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/thales_theorem_microsim.html" data-title="thales theorem"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/toroid_microsim.html" data-title="toroid"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Triangle_center_microsim.html" data-title="Triangle center"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Triangular_bipyramid_microsim.html" data-title="Triangular bipyramid"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/triangular_tiling_microsim.html" data-title="triangular tiling"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/truncated_cube_microsim.html" data-title="truncated cube"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/truncated_cuboctahedron_microsim.html" data-title="truncated cuboctahedron"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/truncated_dodecahedron_microsim.html" data-title="truncated dodecahedron"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/truncated_icosahedron_microsim.html" data-title="truncated icosahedron"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/truncated_icosidodecahedron_microsim.html" data-title="truncated icosidodecahedron"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/truncated_octahedron_microsim.html" data-title="truncated octahedron"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/truncated_tetrahedron_microsim.html" data-title="truncated tetrahedron"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Voxel_microsim.html" data-title="Voxel"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Weaire-Phelan_structure_microsim.html" data-title="Weaire-Phelan structure"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/Winding_number_microsim.html" data-title="Winding number"></div>
<div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/wythoff_construction_microsim.html" data-title="wythoff construction"></div>
</div>
<!-- SECTIONSIMS:END -->
*All HEAD 200 on 2026-09-17, every one playable here. Per file: a registry row in `_registry/microsim_index.tsv` where none exists yet, thumbnails per THUMBNAILS.md, placement in its article by generator block, HEAD re-verified at placement (house rule: 200-verified embeds). A file with a station number stands in for that station until the framework rebuild; the rest place as variants of the stations named.*
| # | Article | Sim (legacy build) | Role |
|---|---|---|---|
| 1 | [[120-cell]] | `https://wikitube-3d-microsims.netlify.app/120_cell_microsim.html` | variant of 8.3 |
| 2 | [[16-cell]] | `https://wikitube-3d-microsims.netlify.app/16-cell_microsim.html` | variant of 8.3 |
| 3 | [[24-cell]] | `https://wikitube-3d-microsims.netlify.app/24-cell_microsim.html` | variant of 8.3 |
| 4 | [[4-polytope]] | `https://wikitube-3d-microsims.netlify.app/4-polytope_microsim.html` | variant of 8.3 |
| 5 | [[5-cell]] | `https://wikitube-3d-microsims.netlify.app/5-cell_microsim.html` | variant of 8.3 |
| 6 | [[600-cell]] | `https://wikitube-3d-microsims.netlify.app/600_cell_microsim.html` | variant of 8.3 |
| 7 | [[Angle_bisector_theorem]] | `https://wikitube-3d-microsims.netlify.app/Angle_bisector_theorem_microsim.html` | variant of 2.2 |
| 8 | [[Angle_trisection]] | `https://wikitube-3d-microsims.netlify.app/Angle_trisection_microsim.html` | variant of 1.6 |
| 9 | [[Apollonian_circles]] | `https://wikitube-3d-microsims.netlify.app/Apollonian_circles_microsim.html` | variant of 3.1 |
| 10 | [[Apollonian_gasket]] | `https://wikitube-3d-microsims.netlify.app/apollonian_gasket_microsim.html` | variant of 10.5, 16.1 |
| 11 | [[Apollonius's_theorem]] | `https://wikitube-3d-microsims.netlify.app/Apollonius_theorem_microsim.html` | variant of 2.3 |
| 12 | [[Cantor_set]] | `https://wikitube-3d-microsims.netlify.app/Cantor_set_microsim.html` | variant of 16.1, 16.3 |
| 13 | [[Central_angle]] | `https://wikitube-3d-microsims.netlify.app/central_angle_microsim.html` | variant of 1.3, 3.2 |
| 14 | [[Circumcircle]] | `https://wikitube-3d-microsims.netlify.app/Circumscribed_circle_microsim.html` | variant of 2.1 |
| 15 | [[Compound_of_five_cubes]] | `https://wikitube-3d-microsims.netlify.app/compound_of_five_cubes_microsim.html` | variant of 6.5 |
| 16 | [[Cone]] | `https://wikitube-3d-microsims.netlify.app/cone_microsim.html` | variant of 5.1, 7.3 |
| 17 | [[Configuration_space_(physics)]] | `https://wikitube-3d-microsims.netlify.app/Configuration_Space_Physics.html` | variant of 14.6 |
| 18 | [[Constructive_solid_geometry]] | `https://wikitube-3d-microsims.netlify.app/Constructive_solid_geometry_microsim.html` | stand-in for station 15.5 |
| 19 | [[Convex_hull]] | `https://wikitube-3d-microsims.netlify.app/Convex_hull_microsim.html` | stand-in for station 14.1 |
| 20 | [[Convex_polygon]] | `https://wikitube-3d-microsims.netlify.app/Convex_polygon_microsim.html` | variant of 3.3 |
| 21 | [[Cotangent_bundle]] | `https://wikitube-3d-microsims.netlify.app/Cotangent_bundle.html` | variant of 12.7 |
| 22 | [[Cross-polytope]] | `https://wikitube-3d-microsims.netlify.app/cross_polytope_microsim.html` | variant of 8.2 |
| 23 | [[Crossbar_theorem]] | `https://wikitube-3d-microsims.netlify.app/crossbar_theorem_microsim.html` | variant of 1.4 |
| 24 | [[Császár_polyhedron]] | `https://wikitube-3d-microsims.netlify.app/Csa%CC%81sza%CC%81r_polyhedron_microsim.html` | variant of 6.6 |
| 25 | [[Cube]] | `https://wikitube-3d-microsims.netlify.app/Cube_microsim.html` | variant of 6.2 |
| 26 | [[Cuboctahedron]] | `https://wikitube-3d-microsims.netlify.app/cuboctahedron_microsim.html` | variant of 6.3 |
| 27 | [[Curvature]] | `https://wikitube-3d-microsims.netlify.app/Curvature.html` | stand-in for station 11.4 |
| 28 | [[Cylinder]] | `https://wikitube-3d-microsims.netlify.app/cylinder_microsim.html` | variant of 7.3 |
| 29 | [[Disdyakis_dodecahedron]] | `https://wikitube-3d-microsims.netlify.app/Disdyakis_dodecahedron_microsim.html` | variant of 6.4 |
| 30 | [[Disdyakis_triacontahedron]] | `https://wikitube-3d-microsims.netlify.app/Disdyakis_triacontahedron_microsim.html` | variant of 6.4 |
| 31 | [[Dodecahedron]] | `https://wikitube-3d-microsims.netlify.app/Dodecahedron_microsim.html` | variant of 6.2 |
| 32 | [[Doubling_the_cube]] | `https://wikitube-3d-microsims.netlify.app/Doubling_the_cube_microsim.html` | variant of 1.6 |
| 33 | [[Equilateral_triangle]] | `https://wikitube-3d-microsims.netlify.app/Equilateral_triangle_microsim.html` | variant of 2.1 |
| 34 | [[Euclidean_tilings_by_convex_regular_polygons]] | `https://wikitube-3d-microsims.netlify.app/Euclidean_tilings_by_convex_regular_polygons_microsim.html` | variant of 3.5 |
| 35 | [[Euler_characteristic]] | `https://wikitube-3d-microsims.netlify.app/Euler_characteristic_microsim.html` | variant of 6.1, 13.3, 13.4 |
| 36 | [[Euler_characteristic]] | `https://wikitube-3d-microsims.netlify.app/Euler_polyhedral_formula_microsim.html` | variant of 6.1, 13.3, 13.4 |
| 37 | [[Exterior_angle_theorem]] | `https://wikitube-3d-microsims.netlify.app/Exterior_angle_theorem_microsim.html` | variant of 1.4 |
| 38 | [[Figure-eight_knot_(mathematics)]] | `https://wikitube-3d-microsims.netlify.app/figure_eight_knot_mathematics_microsim.html` | variant of 13.5 |
| 39 | [[Figure-eight_knot_(mathematics)]] | `https://wikitube-3d-microsims.netlify.app/figure_eight_knot_microsim.html` | variant of 13.5 |
| 40 | [[Genus_(mathematics)]] | `https://wikitube-3d-microsims.netlify.app/Genus_mathematics_microsim.html` | variant of 13.3 |
| 41 | [[Geodesic]] | `https://wikitube-3d-microsims.netlify.app/Geodesic_microsim.html` | stand-in for station 12.4 |
| 42 | [[Geometric_mean_theorem]] | `https://wikitube-3d-microsims.netlify.app/Geometric_mean_theorem_microsim.html` | variant of 2.2 |
| 43 | [[Goldberg_polyhedron]] | `https://wikitube-3d-microsims.netlify.app/Goldberg_polyhedron_microsim.html` | variant of 7.4 |
| 44 | [[Gyrobifastigium]] | `https://wikitube-3d-microsims.netlify.app/Gyrobifastigium_microsim.html` | variant of 6.6 |
| 45 | [[Hairy_ball_theorem]] | `https://wikitube-3d-microsims.netlify.app/Hairy_ball_theorem_microsim.html` | stand-in for station 13.6 |
| 46 | [[Heptagonal_tiling]] | `https://wikitube-3d-microsims.netlify.app/heptagonal_tiling_microsim.html` | variant of 10.3 |
| 47 | [[Heron's_formula]] | `https://wikitube-3d-microsims.netlify.app/heron_formula_microsim.html` | variant of 2.1 |
| 48 | [[Hexagonal_tiling]] | `https://wikitube-3d-microsims.netlify.app/hexagonal_tiling_microsim.html` | variant of 3.5 |
| 49 | [[Hinge_theorem]] | `https://wikitube-3d-microsims.netlify.app/Hinge_theorem_microsim.html` | variant of 1.4 |
| 50 | [[Honeycomb_(geometry)]] | `https://wikitube-3d-microsims.netlify.app/Honeycomb_geometry_microsim.html` | stand-in for station 7.5 |
| 51 | [[Hypercube]] | `https://wikitube-3d-microsims.netlify.app/Hypercube_microsim.html` | variant of 8.2 |
| 52 | [[Icosahedron]] | `https://wikitube-3d-microsims.netlify.app/Icosahedron_microsim.html` | variant of 6.2 |
| 53 | [[Icosidodecahedron]] | `https://wikitube-3d-microsims.netlify.app/icosidodecahedron_microsim.html` | variant of 6.3 |
| 54 | [[Identity_matrix]] | `https://wikitube-3d-microsims.netlify.app/Identity_Matrix.html` | variant of 4.3 |
| 55 | [[Incircle_and_excircles]] | `https://wikitube-3d-microsims.netlify.app/Incircle_and_excircles_of_a_triangle_microsim.html` | variant of 2.1 |
| 56 | [[Inscribed_angle]] | `https://wikitube-3d-microsims.netlify.app/inscribed_angle_microsim.html` | stand-in for station 3.2 |
| 57 | [[Inscribed_angle]] | `https://wikitube-3d-microsims.netlify.app/inscribed_angle_theorem_microsim.html` | stand-in for station 3.2 |
| 58 | [[Intercept_theorem]] | `https://wikitube-3d-microsims.netlify.app/intercept_theorem_microsim.html` | variant of 2.2 |
| 59 | [[Intersecting_chords_theorem]] | `https://wikitube-3d-microsims.netlify.app/intersecting_chords_theorem_microsim.html` | variant of 3.1 |
| 60 | [[Johnson_solid]] | `https://wikitube-3d-microsims.netlify.app/jsolids.html` | stand-in for station 6.6 |
| 61 | [[Kepler–Poinsot_polyhedron]] | `https://wikitube-3d-microsims.netlify.app/Kepler_Poinsot_polyhedron_microsim.html` | variant of 6.5 |
| 62 | [[Kepler–Poinsot_polyhedron]] | `https://wikitube-3d-microsims.netlify.app/keplerpoinsot.html` | variant of 6.5 |
| 63 | [[Kepler's_laws_of_planetary_motion]] | `https://wikitube-3d-microsims.netlify.app/Keplers_laws_of_planetary_motion.html` | variant of 5.2 |
| 64 | [[Klein_bottle]] | `https://wikitube-3d-microsims.netlify.app/klein_bottle.html` | variant of 13.2, 13.3 |
| 65 | [[Klein_bottle]] | `https://wikitube-3d-microsims.netlify.app/klein_bottle_microsim.html` | variant of 13.2, 13.3 |
| 66 | [[Knot_theory]] | `https://wikitube-3d-microsims.netlify.app/knot_theory_microsim.html` | stand-in for station 13.5 |
| 67 | [[Law_of_cosines]] | `https://wikitube-3d-microsims.netlify.app/law_of_cosines_microsim.html` | variant of 2.3 |
| 68 | [[Law_of_sines]] | `https://wikitube-3d-microsims.netlify.app/Law_of_sines_microsim.html` | variant of 2.4 |
| 69 | [[Lemniscate]] | `https://wikitube-3d-microsims.netlify.app/lemniscate_microsim.html` | variant of 5.4, 11.1 |
| 70 | [[Lie_group]] | `https://wikitube-3d-microsims.netlify.app/Lie_Group.html` | variant of 4.6 |
| 71 | [[Liouville's_theorem_(Hamiltonian)]] | `https://wikitube-3d-microsims.netlify.app/Liouville%27s_theorem_%28Hamiltonian%29.html` | variant of 12.7 |
| 72 | [[Lune_of_Hippocrates]] | `https://wikitube-3d-microsims.netlify.app/lune_of_hippocrates_microsim.html` | variant of 1.6 |
| 73 | [[Manifold]] | `https://wikitube-3d-microsims.netlify.app/Manifold_microsim.html` | stand-in for station 12.6 |
| 74 | [[Marching_cubes]] | `https://wikitube-3d-microsims.netlify.app/Marching_cubes_microsim.html` | stand-in for station 15.4 |
| 75 | [[Menelaus's_theorem]] | `https://wikitube-3d-microsims.netlify.app/Menelaus_theorem_microsim.html` | variant of 2.5 |
| 76 | [[Möbius_strip]] | `https://wikitube-3d-microsims.netlify.app/mobius_strip.html` | stand-in for station 13.2 |
| 77 | [[Möbius_strip]] | `https://wikitube-3d-microsims.netlify.app/mobius_strip_microsim.html` | stand-in for station 13.2 |
| 78 | [[Near-miss_Johnson_solid]] | `https://wikitube-3d-microsims.netlify.app/nearmiss.html` | variant of 6.6 |
| 79 | [[Neusis_construction]] | `https://wikitube-3d-microsims.netlify.app/Neusis_construction_microsim.html` | variant of 1.6 |
| 80 | [[Non-Euclidean_geometry]] | `https://wikitube-3d-microsims.netlify.app/non_euclidean_geometry_microsim.html` | stand-in for station 10.1 |
| 81 | [[Octahedral_symmetry]] | `https://wikitube-3d-microsims.netlify.app/Octahedral_group_microsim.html` | variant of 4.6 |
| 82 | [[Octahedron]] | `https://wikitube-3d-microsims.netlify.app/Octahedron_microsim.html` | variant of 6.2 |
| 83 | [[On_Spirals]] | `https://wikitube-3d-microsims.netlify.app/on_spirals_microsim.html` | variant of 11.1 |
| 84 | [[Order-5_square_tiling]] | `https://wikitube-3d-microsims.netlify.app/Order-5_square_tiling_microsim.html` | variant of 10.3 |
| 85 | [[Order-7_triangular_tiling]] | `https://wikitube-3d-microsims.netlify.app/Order-7_triangular_tiling_microsim.html` | variant of 10.3 |
| 86 | [[Order-4_pentagonal_tiling]] | `https://wikitube-3d-microsims.netlify.app/order_4_pentagonal_tiling_microsim.html` | variant of 10.3 |
| 87 | [[Pappus's_area_theorem]] | `https://wikitube-3d-microsims.netlify.app/Pappus_area_theorem_microsim.html` | variant of 2.3 |
| 88 | [[Pentagonal_bipyramid]] | `https://wikitube-3d-microsims.netlify.app/Pentagonal_bipyramid_microsim.html` | variant of 6.6 |
| 89 | [[Pentagonal_cupola]] | `https://wikitube-3d-microsims.netlify.app/Pentagonal_cupola_microsim.html` | variant of 6.6 |
| 90 | [[Pentagonal_hexecontahedron]] | `https://wikitube-3d-microsims.netlify.app/Pentagonal_hexecontahedron_microsim.html` | variant of 6.4 |
| 91 | [[Pentagram]] | `https://wikitube-3d-microsims.netlify.app/Pentagram_microsim.html` | variant of 3.3 |
| 92 | [[Platonic_solid]] | `https://wikitube-3d-microsims.netlify.app/platonic_solid.html` | stand-in for station 6.2 |
| 93 | [[Polycube]] | `https://wikitube-3d-microsims.netlify.app/Polycube_microsim.html` | variant of 7.5 |
| 94 | [[Polygonal_modeling]] | `https://wikitube-3d-microsims.netlify.app/Polygonal_modeling_microsim.html` | variant of 15.1 |
| 95 | [[Net_(polyhedron)]] | `https://wikitube-3d-microsims.netlify.app/Polygonal_net_microsim.html` | variant of 6.1, 8.2 |
| 96 | [[Polyomino]] | `https://wikitube-3d-microsims.netlify.app/Polyomino_microsim.html` | variant of 7.5 |
| 97 | [[Regular_4-polytope]] | `https://wikitube-3d-microsims.netlify.app/polytope4d.html` | stand-in for station 8.3 |
| 98 | [[Pons_asinorum]] | `https://wikitube-3d-microsims.netlify.app/Pons_asinorum_microsim.html` | variant of 1.4 |
| 99 | [[Prime_knot]] | `https://wikitube-3d-microsims.netlify.app/prime_knot_microsim.html` | variant of 13.5 |
| 100 | [[Prince_Rupert's_cube]] | `https://wikitube-3d-microsims.netlify.app/Prince_Ruperts_cube_microsim.html` | variant of 7.5 |
| 101 | [[Problem_of_Apollonius]] | `https://wikitube-3d-microsims.netlify.app/Problem_of_Apollonius_microsim.html` | variant of 3.1 |
| 102 | [[Ptolemy's_theorem]] | `https://wikitube-3d-microsims.netlify.app/ptolemy_theorem_microsim.html` | variant of 3.2 |
| 103 | [[Pythagorean_theorem]] | `https://wikitube-3d-microsims.netlify.app/pythagorean_theorem_microsim.html` | stand-in for station 2.3 |
| 104 | [[Quadratrix_of_Hippias]] | `https://wikitube-3d-microsims.netlify.app/quadratrix_of_hippias_microsim.html` | variant of 1.6, 11.1 |
| 105 | [[Quaternion]] | `https://wikitube-3d-microsims.netlify.app/Quaternion.html` | variant of 4.4, 8.5 |
| 106 | [[Real_projective_plane]] | `https://wikitube-3d-microsims.netlify.app/real_projective_plane_microsim.html` | variant of 13.2, 13.3 |
| 107 | [[Rhombicuboctahedron]] | `https://wikitube-3d-microsims.netlify.app/rhombicuboctahedron_microsim.html` | variant of 6.3 |
| 108 | [[Rotation_(mathematics)]] | `https://wikitube-3d-microsims.netlify.app/Rotation.html` | stand-in for station 4.4 |
| 109 | [[Schlegel_diagram]] | `https://wikitube-3d-microsims.netlify.app/schlegel_diagram_microsim.html` | variant of 8.3 |
| 110 | [[Seven_Bridges_of_Königsberg]] | `https://wikitube-3d-microsims.netlify.app/Seven_Bridges_of_Ko%CC%88nigsberg_microsim.html` | variant of 13.1 |
| 111 | [[Simple_polygon]] | `https://wikitube-3d-microsims.netlify.app/Simple_polygon_microsim.html` | variant of 3.3, 14.2 |
| 112 | [[Simplex]] | `https://wikitube-3d-microsims.netlify.app/Simplex_microsim.html` | variant of 2.5, 8.2 |
| 113 | [[Small_stellated_dodecahedron]] | `https://wikitube-3d-microsims.netlify.app/small_stellated_dodecahedron_microsim.html` | variant of 6.5 |
| 114 | [[Snub_disphenoid]] | `https://wikitube-3d-microsims.netlify.app/Snub_disphenoid_microsim.html` | variant of 6.6 |
| 115 | [[Soma_cube]] | `https://wikitube-3d-microsims.netlify.app/Soma_cube_microsim.html` | variant of 7.5 |
| 116 | [[Sphere]] | `https://wikitube-3d-microsims.netlify.app/sphere_microsim.html` | stand-in for station 7.3 |
| 117 | [[Spiral_of_Theodorus]] | `https://wikitube-3d-microsims.netlify.app/spiral_of_theodorus_microsim.html` | variant of 2.3, 11.1 |
| 118 | [[Square_tiling]] | `https://wikitube-3d-microsims.netlify.app/square_tiling_microsim.html` | variant of 3.5 |
| 119 | [[Squaring_the_circle]] | `https://wikitube-3d-microsims.netlify.app/Squaring_the_circle_microsim.html` | variant of 1.6 |
| 120 | [[Star_polygon]] | `https://wikitube-3d-microsims.netlify.app/Star_polygon_microsim.html` | variant of 3.3 |
| 121 | [[Stellated_octahedron]] | `https://wikitube-3d-microsims.netlify.app/Stellated_octahedron_microsim.html` | variant of 6.5 |
| 122 | [[Stellation]] | `https://wikitube-3d-microsims.netlify.app/Stellation_microsim.html` | stand-in for station 6.5 |
| 123 | [[Straightedge_and_compass_construction]] | `https://wikitube-3d-microsims.netlify.app/Straightedge_and_compass_construction_microsim.html` | stand-in for station 1.6 |
| 124 | [[Subdivision_surface]] | `https://wikitube-3d-microsims.netlify.app/Subdivision_surfaces_microsim.html` | stand-in for station 15.3 |
| 125 | [[Surface_(topology)]] | `https://wikitube-3d-microsims.netlify.app/Surface_topology_microsim.html` | stand-in for station 13.3 |
| 126 | [[Symplectic_manifold]] | `https://wikitube-3d-microsims.netlify.app/Symplectic_manifold.html` | variant of 12.7 |
| 127 | [[Szilassi_polyhedron]] | `https://wikitube-3d-microsims.netlify.app/Szilassi_polyhedron_microsim.html` | variant of 6.6 |
| 128 | [[Tangent–secant_theorem]] | `https://wikitube-3d-microsims.netlify.app/tangent_secant_theorem_microsim.html` | variant of 3.1 |
| 129 | [[Tessellation]] | `https://wikitube-3d-microsims.netlify.app/Tessellation_microsim.html` | stand-in for station 3.5 |
| 130 | [[Tesseract]] | `https://wikitube-3d-microsims.netlify.app/tesseract.html` | stand-in for station 8.2 |
| 131 | [[Tesseract]] | `https://wikitube-3d-microsims.netlify.app/Tesseract_microsim.html` | stand-in for station 8.2 |
| 132 | [[Tetrahedron]] | `https://wikitube-3d-microsims.netlify.app/Tetrahedron_microsim.html` | variant of 6.2 |
| 133 | [[Thales's_theorem]] | `https://wikitube-3d-microsims.netlify.app/thales_theorem_microsim.html` | variant of 3.2 |
| 134 | [[Toroid]] | `https://wikitube-3d-microsims.netlify.app/toroid_microsim.html` | variant of 12.2 |
| 135 | [[Torus]] | `https://wikitube-3d-microsims.netlify.app/torus_microsim.html` | variant of 12.2 |
| 136 | [[Triangle_center]] | `https://wikitube-3d-microsims.netlify.app/Triangle_center_microsim.html` | variant of 2.1 |
| 137 | [[Triangular_bipyramid]] | `https://wikitube-3d-microsims.netlify.app/Triangular_bipyramid_microsim.html` | variant of 6.6 |
| 138 | [[Triangular_tiling]] | `https://wikitube-3d-microsims.netlify.app/triangular_tiling_microsim.html` | variant of 3.5 |
| 139 | [[Polygon_triangulation]] | `https://wikitube-3d-microsims.netlify.app/Triangulation_microsim.html` | stand-in for station 14.2 |
| 140 | [[Truncated_cube]] | `https://wikitube-3d-microsims.netlify.app/truncated_cube_microsim.html` | variant of 6.3 |
| 141 | [[Truncated_cuboctahedron]] | `https://wikitube-3d-microsims.netlify.app/truncated_cuboctahedron_microsim.html` | variant of 6.3 |
| 142 | [[Truncated_dodecahedron]] | `https://wikitube-3d-microsims.netlify.app/truncated_dodecahedron_microsim.html` | variant of 6.3 |
| 143 | [[Truncated_icosahedron]] | `https://wikitube-3d-microsims.netlify.app/truncated_icosahedron_microsim.html` | variant of 6.3, 7.4 |
| 144 | [[Truncated_icosidodecahedron]] | `https://wikitube-3d-microsims.netlify.app/truncated_icosidodecahedron_microsim.html` | variant of 6.3 |
| 145 | [[Truncated_octahedron]] | `https://wikitube-3d-microsims.netlify.app/truncated_octahedron_microsim.html` | variant of 6.3 |
| 146 | [[Truncated_tetrahedron]] | `https://wikitube-3d-microsims.netlify.app/truncated_tetrahedron_microsim.html` | variant of 6.3 |
| 147 | [[Archimedean_solid]] | `https://wikitube-3d-microsims.netlify.app/truncation.html` | stand-in for station 6.3 |
| 148 | [[Voxel]] | `https://wikitube-3d-microsims.netlify.app/Voxel_microsim.html` | variant of 15.4 |
| 149 | [[Weaire–Phelan_structure]] | `https://wikitube-3d-microsims.netlify.app/Weaire-Phelan_structure_microsim.html` | variant of 7.5 |
| 150 | [[Winding_number]] | `https://wikitube-3d-microsims.netlify.app/Winding_number_microsim.html` | variant of 13.6, 14.4 |
| 151 | [[Wythoff_construction]] | `https://wikitube-3d-microsims.netlify.app/wythoff_construction_microsim.html` | variant of 4.6 |
*Doors — live builds that belong to other rooms but earn a link from a station here:* `Stanford_torus.html` (Stanford torus, 12.2) · `Moire_Pattern.html` (Moiré pattern, 3.5) · `Abelian_Group.html` (Abelian group, 4.6) · `Hamiltonian_mechanics.html` (Hamiltonian mechanics, 12.7) · `Phase_space.html` (Phase space, 12.7) · `computer_vision_microsim.html` (Computer vision, 9.2) · `global_positioning_system_microsim.html` (Global Positioning System, 10.2) · `X-ray_computed_tomography.html` (CT scan, 15.4) · `keplerpoinsot_1.html` (Kepler–Poinsot polyhedron (dup. 1), 6.5) · `keplerpoinsot_2.html` (Kepler–Poinsot polyhedron (dup. 2), 6.5)
### The p5.js shelf — 19 published sketches
<!-- SECTIONSIMS:BEGIN g34 2026-09-19 - microsims the articles linked here play; generated by _tools/generate/g34_portal_section_sims.py; do not hand-edit inside -->
*Microsims from the articles this section links:*
<div class="wt-simrow">
<div class="wt-sim" data-src="https://editor.p5js.org/sciencenibber/full/iPlcgvnTx" data-title="Pythagorean theorem"></div>
<div class="wt-sim" data-src="https://editor.p5js.org/sciencenibber/full/vGugNr9wO" data-title="Thales's theorem"></div>
<div class="wt-sim" data-src="https://editor.p5js.org/sciencenibber/full/5CKKAEwij" data-title="Inscribed angle · p5.js"></div>
<div class="wt-sim" data-src="https://editor.p5js.org/sciencenibber/full/6IslByFxK" data-title="Inscribed angle · p5.js (2)"></div>
<div class="wt-sim" data-src="https://editor.p5js.org/sciencenibber/full/MB84EQBgV" data-title="Central angle"></div>
<div class="wt-sim" data-src="https://editor.p5js.org/sciencenibber/full/MPxHDFZw_" data-title="Intercept theorem"></div>
<div class="wt-sim" data-src="https://editor.p5js.org/sciencenibber/full/_2SqBTbBu" data-title="Intersecting chords theorem"></div>
<div class="wt-sim" data-src="https://editor.p5js.org/sciencenibber/full/6Rl7K7lfC" data-title="Intersecting secants theorem"></div>
<div class="wt-sim" data-src="https://editor.p5js.org/sciencenibber/full/6UBUjG8Lpz" data-title="Ptolemy's theorem"></div>
<div class="wt-sim" data-src="https://editor.p5js.org/sciencenibber/full/w3u0g0ysq" data-title="Heron's formula"></div>
<div class="wt-sim" data-src="https://editor.p5js.org/sciencenibber/full/AuqnqGk65" data-title="Law of cosines"></div>
<div class="wt-sim" data-src="https://editor.p5js.org/sciencenibber/full/cmTHn1cPo" data-title="Law of sines"></div>
<div class="wt-sim" data-src="https://editor.p5js.org/sciencenibber/full/bJgGhIOo3" data-title="Pappus's area theorem"></div>
<div class="wt-sim" data-src="https://editor.p5js.org/sciencenibber/full/LyaumH2Zq" data-title="Menelaus's theorem"></div>
<div class="wt-sim" data-src="https://editor.p5js.org/sciencenibber/full/CPZ57e5R9" data-title="Apollonius's theorem"></div>
<div class="wt-sim" data-src="https://editor.p5js.org/sciencenibber/full/dhtCBbXCN" data-title="Hinge theorem"></div>
<div class="wt-sim" data-src="https://editor.p5js.org/sciencenibber/full/LKacL-cQk" data-title="Neusis construction"></div>
<div class="wt-sim" data-src="https://editor.p5js.org/sciencenibber/full/k0mlqn-IC" data-title="Non-Euclidean geometry"></div>
<div class="wt-sim" data-src="https://editor.p5js.org/sciencenibber/full/YsZM4UieT" data-title="Octahedral symmetry"></div>
</div>
<!-- SECTIONSIMS:END -->
*The second engine for Part One, already published from `wiki/Geometry.md`; each embeds as a `/full/` player where its article lands.*
| # | Article | Sim (p5.js, /full embed) | Extends station |
|---|---|---|---|
| 1 | [[Pythagorean_theorem]] | `https://editor.p5js.org/sciencenibber/full/iPlcgvnTx` | 2.3 |
| 2 | [[Thales's_theorem]] | `https://editor.p5js.org/sciencenibber/full/vGugNr9wO` | 3.2 |
| 3 | [[Inscribed_angle]] | `https://editor.p5js.org/sciencenibber/full/5CKKAEwij` | 3.2 |
| 4 | [[Inscribed_angle]] | `https://editor.p5js.org/sciencenibber/full/6IslByFxK` | 3.2 |
| 5 | [[Central_angle]] | `https://editor.p5js.org/sciencenibber/full/MB84EQBgV` | 1.3, 3.2 |
| 6 | [[Intercept_theorem]] | `https://editor.p5js.org/sciencenibber/full/MPxHDFZw_` | 2.2 |
| 7 | [[Intersecting_chords_theorem]] | `https://editor.p5js.org/sciencenibber/full/_2SqBTbBu` | 3.1 |
| 8 | [[Intersecting_secants_theorem]] | `https://editor.p5js.org/sciencenibber/full/6Rl7K7lfC` | 3.1 |
| 9 | [[Ptolemy's_theorem]] | `https://editor.p5js.org/sciencenibber/full/6UBUjG8Lpz` | 3.2 |
| 10 | [[Heron's_formula]] | `https://editor.p5js.org/sciencenibber/full/w3u0g0ysq` | 2.1 |
| 11 | [[Law_of_cosines]] | `https://editor.p5js.org/sciencenibber/full/AuqnqGk65` | 2.3 |
| 12 | [[Law_of_sines]] | `https://editor.p5js.org/sciencenibber/full/cmTHn1cPo` | 2.4 |
| 13 | [[Pappus's_area_theorem]] | `https://editor.p5js.org/sciencenibber/full/bJgGhIOo3` | 2.3 |
| 14 | [[Menelaus's_theorem]] | `https://editor.p5js.org/sciencenibber/full/LyaumH2Zq` | 2.5 |
| 15 | [[Apollonius's_theorem]] | `https://editor.p5js.org/sciencenibber/full/CPZ57e5R9` | 2.3 |
| 16 | [[Hinge_theorem]] | `https://editor.p5js.org/sciencenibber/full/dhtCBbXCN` | 1.4 |
| 17 | [[Neusis_construction]] | `https://editor.p5js.org/sciencenibber/full/LKacL-cQk` | 1.6 |
| 18 | [[Non-Euclidean_geometry]] | `https://editor.p5js.org/sciencenibber/full/k0mlqn-IC` | 10.1 |
| 19 | [[Octahedral_symmetry]] | `https://editor.p5js.org/sciencenibber/full/YsZM4UieT` | 4.6 |
### Variants — the 21 gaps of the 150-list
*The 150-priority list in `wiki/Geometry.md` resolves to 150 distinct Wikipedia articles; 129 of them already have a Geometry-lane three.js build. The 21 without one are the first variant specs to write (`specs/variants/<SeeAlso>.json`, each `extends` its station's sim):*
| Pattern | Article | Extends station |
|---|---|---|
| A | [[Intersecting_secants_theorem]] | 3.1 |
| C | [[Snub_cube]] | 6.3 |
| C | [[Snub_dodecahedron]] | 6.3 |
| C | [[Rhombicosidodecahedron]] | 6.3 |
| C | [[Rhombic_dodecahedron]] | 6.4, 7.5 |
| C | [[Rhombic_triacontahedron]] | 6.4 |
| C | [[Triakis_tetrahedron]] | 6.4 |
| C | [[Triakis_octahedron]] | 6.4 |
| C | [[Triakis_icosahedron]] | 6.4 |
| C | [[Tetrakis_hexahedron]] | 6.4 |
| C | [[Pentakis_dodecahedron]] | 6.4 |
| C | [[Compound_of_two_icosahedra]] | 6.5 |
| C | [[Antiprism]] | 7.1 |
| C | [[Triangular_prism]] | 7.1 |
| C | [[Bipyramid]] | 6.6 |
| C | [[Frustum]] | 7.1 |
| C | [[Cupola_(geometry)]] | 6.6 |
| C | [[Pyramid_(geometry)]] | 7.1 |
| C | [[Square_pyramid]] | 6.6 |
| C | [[Pentagonal_pyramid]] | 6.6 |
| C | [[Square_cupola]] | 6.6 |
*Beyond the 150-list, the See-also lists above name 680 distinct variant articles (742 placements); 118 of them already have a live build. Variants are minted at ~0.5 KB each only when their station's sim exists — count them as grandchildren, not as scope.*
### Child articles — the 95 spine pairs
*Action by the density rule: **mint** = no article on the site, write to wt-article density; **densify** = a stub or spec page exists, bring it to density and keep its sim; **place** = a dense article exists, add the section sim by generator block only, no rewrite. oldid is the en.wikipedia revision the skeleton will mirror (pinned 2026-09-17); bytes is the article's size that day.*
| Row | Slug | oldid | WP bytes | On site | Action |
|---|---|---|---|---|---|
| GEO-001 | [[Euclidean_geometry]] | 1375451931 | 63,659 | — | mint |
| GEO-002 | [[Plane_(mathematics)]] | 1372797536 | 7,177 | — | mint |
| GEO-003 | [[Angle]] | 1373460318 | 60,729 | — | mint |
| GEO-004 | [[Congruence_(geometry)]] | 1369909218 | 17,946 | — | mint |
| GEO-005 | [[Parallel_postulate]] | 1367723621 | 27,949 | — | mint |
| GEO-006 | [[Straightedge_and_compass_construction]] | 1360459366 | 37,049 | — | mint |
| GEO-007 | [[Triangle]] | 1369029950 | 57,685 | — | mint |
| GEO-008 | [[Similarity_(geometry)]] | 1368513692 | 27,481 | — | mint |
| GEO-009 | [[Pythagorean_theorem]] | 1374991215 | 101,050 | — | mint |
| GEO-010 | [[Trigonometric_functions]] | 1374535148 | 80,219 | — | mint |
| GEO-011 | [[Barycentric_coordinate_system]] | 1370684760 | 46,083 | — | mint |
| GEO-012 | [[Circle]] | 1371130265 | 47,577 | — | mint |
| GEO-013 | [[Inscribed_angle]] | 1373571166 | 12,347 | — | mint |
| GEO-014 | [[Polygon]] | 1368766426 | 37,786 | — | mint |
| GEO-015 | [[Wallace–Bolyai–Gerwien_theorem]] | 1343593197 | 7,718 | — | mint |
| GEO-016 | [[Tessellation]] | 1369644690 | 60,684 | stub — g03 page, two short sections, live Tessellation_microsim.html and a dead Tessellation.html embed (404) | densify (fix the dead embed first) |
| GEO-017 | [[Curve_of_constant_width]] | 1365480777 | 30,871 | — | mint |
| GEO-018 | [[Analytic_geometry]] | 1373603189 | 41,359 | — | mint |
| GEO-019 | [[Euclidean_vector]] | 1371601955 | 63,414 | — | mint |
| GEO-020 | [[Transformation_matrix]] | 1366181045 | 24,720 | — | mint |
| GEO-021 | [[Rotation_(mathematics)]] | 1363058448 | 22,708 | — | mint |
| GEO-022 | [[Reflection_(mathematics)]] | 1362042431 | 10,086 | — | mint |
| GEO-023 | [[Symmetry_group]] | 1374227986 | 18,033 | — | mint |
| GEO-024 | [[Conic_section]] | 1374364404 | 70,572 | — | mint |
| GEO-025 | [[Focus_(geometry)]] | 1311084369 | 10,009 | — | mint |
| GEO-026 | [[Quadric]] | 1362708716 | 56,644 | — | mint |
| GEO-027 | [[Algebraic_curve]] | 1374008331 | 50,825 | — | mint |
| GEO-028 | [[Algebraic_variety]] | 1354039696 | 42,923 | — | mint |
| GEO-029 | [[Cubic_surface]] | 1344619260 | 31,487 | — | mint |
| GEO-030 | [[Polyhedron]] | 1374050223 | 118,213 | dense — microsim-first article; its only embed, Polyhedron.html, returns 404 | place (fix the dead embed first) |
| GEO-031 | [[Platonic_solid]] | 1373361850 | 55,341 | — | mint |
| GEO-032 | [[Archimedean_solid]] | 1371932845 | 22,011 | — | mint |
| GEO-033 | [[Dual_polyhedron]] | 1370728380 | 20,716 | — | mint |
| GEO-034 | [[Stellation]] | 1371079100 | 20,439 | — | mint |
| GEO-035 | [[Johnson_solid]] | 1372371494 | 63,624 | — | mint |
| GEO-036 | [[Prism_(geometry)]] | 1330525767 | 21,572 | — | mint |
| GEO-037 | [[Cavalieri's_principle]] | 1353351454 | 15,590 | — | mint |
| GEO-038 | [[Sphere]] | 1367653016 | 41,549 | — | mint |
| GEO-039 | [[Geodesic_polyhedron]] | 1372987080 | 20,192 | — | mint |
| GEO-040 | [[Honeycomb_(geometry)]] | 1367188549 | 15,145 | — | mint |
| GEO-041 | [[Sphere_packing]] | 1375259008 | 33,896 | — | mint |
| GEO-042 | [[Four-dimensional_space]] | 1375343328 | 47,511 | — | mint |
| GEO-043 | [[Tesseract]] | 1370634206 | 26,815 | — | mint |
| GEO-044 | [[Regular_4-polytope]] | 1358053617 | 28,865 | — | mint |
| GEO-045 | [[Schläfli_symbol]] | 1371513997 | 37,959 | — | mint |
| GEO-046 | [[Hopf_fibration]] | 1350896693 | 36,218 | — | mint |
| GEO-047 | [[Projective_geometry]] | 1371953159 | 40,693 | — | mint |
| GEO-048 | [[3D_projection]] | 1368808229 | 33,178 | — | mint |
| GEO-049 | [[Homogeneous_coordinates]] | 1374996410 | 26,681 | — | mint |
| GEO-050 | [[Desargues's_theorem]] | 1348566123 | 16,193 | — | mint |
| GEO-051 | [[Cross-ratio]] | 1373681415 | 33,692 | — | mint |
| GEO-052 | [[Duality_(projective_geometry)]] | 1371079207 | 48,223 | — | mint |
| GEO-053 | [[Non-Euclidean_geometry]] | 1360873892 | 47,798 | — | mint |
| GEO-054 | [[Spherical_geometry]] | 1370875316 | 15,301 | — | mint |
| GEO-055 | [[Hyperbolic_geometry]] | 1369230884 | 57,436 | — | mint |
| GEO-056 | [[Stereographic_projection]] | 1365283902 | 51,383 | — | mint |
| GEO-057 | [[Inversive_geometry]] | 1358223787 | 30,471 | — | mint |
| GEO-058 | [[Möbius_transformation]] | 1374014348 | 72,380 | — | mint |
| GEO-059 | [[Parametric_equation]] | 1360518345 | 20,972 | — | mint |
| GEO-060 | [[Bézier_curve]] | 1373738752 | 52,305 | — | mint |
| GEO-061 | [[Spline_(mathematics)]] | 1361638825 | 23,388 | — | mint |
| GEO-062 | [[Curvature]] | 1373606146 | 57,690 | — | mint |
| GEO-063 | [[Frenet–Serret_formulas]] | 1374908110 | 38,405 | — | mint |
| GEO-064 | [[Elastica_theory]] | 1308590996 | 2,586 | — | mint |
| GEO-065 | [[Parametric_surface]] | 1335181902 | 14,879 | — | mint |
| GEO-066 | [[Surface_of_revolution]] | 1339801174 | 11,541 | — | mint |
| GEO-067 | [[Gaussian_curvature]] | 1373253994 | 19,337 | — | mint |
| GEO-068 | [[Geodesic]] | 1367451095 | 40,194 | stub — two-section stub with live legacy sim; wt-owner PORTAL_Dynamical_system | densify |
| GEO-069 | [[Minimal_surface]] | 1354521012 | 23,438 | — | mint |
| GEO-070 | [[Manifold]] | 1369450001 | 70,447 | stub — two-section stub with live legacy sim; wt-owner PORTAL_Dynamical_system | densify |
| GEO-071 | [[Symplectic_geometry]] | 1374101538 | 11,923 | — | mint |
| GEO-072 | [[Topology]] | 1375412604 | 41,501 | prose — redlink_fill prose, 5 sections, no sim | place |
| GEO-073 | [[Möbius_strip]] | 1369593541 | 90,549 | — | mint |
| GEO-074 | [[Surface_(topology)]] | 1371903894 | 33,055 | stub — two-section stub with live legacy sim; wt-owner PORTAL_Graph_theory | densify |
| GEO-075 | [[Gauss–Bonnet_theorem]] | 1351595350 | 13,762 | — | mint |
| GEO-076 | [[Knot_theory]] | 1368882668 | 58,135 | — | mint |
| GEO-077 | [[Hairy_ball_theorem]] | 1373400834 | 13,977 | — | mint |
| GEO-078 | [[Shape_of_the_universe]] | 1375132410 | 55,021 | — | mint |
| GEO-079 | [[Convex_hull]] | 1369044984 | 59,003 | — | mint |
| GEO-080 | [[Polygon_triangulation]] | 1374720578 | 13,221 | — | mint |
| GEO-081 | [[Voronoi_diagram]] | 1365615905 | 47,820 | — | mint |
| GEO-082 | [[Point_in_polygon]] | 1368122570 | 12,846 | — | mint |
| GEO-083 | [[Bounding_volume_hierarchy]] | 1374681149 | 19,331 | — | mint |
| GEO-084 | [[Motion_planning]] | 1374345775 | 27,305 | — | mint |
| GEO-085 | [[Polygon_mesh]] | 1374610479 | 21,212 | — | mint |
| GEO-086 | [[Normal_(geometry)]] | 1347731306 | 17,730 | — | mint |
| GEO-087 | [[Subdivision_surface]] | 1375269153 | 12,969 | — | mint |
| GEO-088 | [[Marching_cubes]] | 1374516151 | 13,379 | — | mint |
| GEO-089 | [[Constructive_solid_geometry]] | 1364272729 | 11,271 | — | mint |
| GEO-090 | [[Level_of_detail_(computer_graphics)]] | 1370244819 | 17,359 | — | mint |
| GEO-091 | [[Fractal]] | 1369634676 | 79,301 | spec — g03 MicroSim-spec page, no sim | densify |
| GEO-092 | [[Sierpiński_triangle]] | 1374534244 | 24,440 | — | mint |
| GEO-093 | [[Menger_sponge]] | 1374655607 | 16,282 | — | mint |
| GEO-094 | [[Space-filling_curve]] | 1374655621 | 15,904 | — | mint |
| GEO-095 | [[Iterated_function_system]] | 1374655585 | 12,793 | — | mint |
*Totals: mint 88 · densify 5 · place 2. Thin pairs to watch: [[Elastica_theory]] (2.6 KB on Wikipedia — see 11.6), [[Plane_(mathematics)]] (7.2 KB), [[Wallace–Bolyai–Gerwien_theorem]] (7.7 KB). Variant articles already on the site, whose `portals:` lists and registry rows still want this portal added: [[Affine_geometry]], [[Algebraic_geometry]], [[Cartesian_coordinate_system]], [[Computational_geometry]], [[Configuration_space_(physics)]], [[Differential_geometry]], [[Discrete_geometry]], [[Finite_geometry]], [[Genus_(mathematics)]], [[Hexagonal_tiling]], [[Hypercube]], [[Kepler's_laws_of_planetary_motion]], [[Liouville's_theorem_(Hamiltonian)]], [[Orthogonality]], [[Polytope]], [[Simple_polygon]], [[Simplex]], [[Symplectic_manifold]], [[Torus]].*
### Housekeeping
- [ ] **H1 · Dead embeds found in the audit:** `Polyhedron.html` in `wiki/Polyhedron.md` returns 404 on the sim host; `Polytope.html` in `wiki/Polytope.md` returns 404 on the sim host; `Tessellation.html` in `wiki/Tessellation.md` returns 404 on the sim host — deploy the staged builds or repoint to the live `_microsim` files before this portal links those pages.
- [ ] **H2 · Registry rows** for the adopted files that lack one (151 of 151; the adopt table) before any thumbnail run; the THUMBNAILS.md flow keys rooms by file slug, so the `_microsim` suffix stays in the key.
- [ ] **H3 · Cut the shard** `worklists/PORTAL_Geometry.worklist.md` from the wave tables above (ids, prio, type, rev from the child-article table) and add it to `WIKITUBE_WORKLIST_INDEX.md`; agents claim rows only through `wtq.py` after that.
- [ ] **H4 · Portal Books:** fill `Portal Books/PORTAL_Geometry/` from the eighteen open titles on the shelf and add the manifest rows; this lane's VM has no route to the hosts. B09 and B19 wait on MTN's copyright call.
- [ ] **H5 · Own the hub article:** `wiki/Geometry.md` is today the 150-priority worklist page; the flagship pass rewrites it at flagship density (an ordinary 1:1 hub article, as `wiki/Aviation.md` was) and keeps the 150-list as its worklist block.
- [ ] **H6 · Ownership of borrowed stubs:** [[Geodesic]], [[Manifold]], [[Symplectic_manifold]] (wt-owner PORTAL_Dynamical_system); [[Surface_(topology)]], [[Simple_polygon]], [[Simplex]], [[Genus_(mathematics)]] (PORTAL_Graph_theory); [[Torus]], [[Hexagonal_tiling]], [[Hypercube]] (PORTAL_Cellular_automaton) — the seven station articles and the hub carry `PORTAL_Geometry` in their `portals:` from this revision; the variant stubs still need the union; whether ownership moves is MTN's call.
- [ ] **H7 · Room plate:** run `g16` for a Commons establishing shot (a Dandelin-spheres or hypercube-rotation animation) and `g17_gif_verify.py` on a networked lane.
- [ ] **H8 · Sign system:** `wiki/Geometry.md` declares kanji radicals · topology · encoding · lattice · spiral; carry the same line here at the flagship pass.
- [ ] **H9 · Two later stations:** Information geometry and Distance geometry (Outline remainder) each earn a station in a fifth wave; Coxeter's *Regular Polytopes* and a fractal-geometry text are the two books the shelf lacks.
<!-- WT:REPOP 2026-09-18 end -->
---
*Spine portal, curated (WIKI_RULES §7). Drafted 2026-09-17 · made publish-ready 2026-09-18 · append-only · 0 deletions. Assets: 151 legacy three.js builds (HEAD-verified 2026-09-17) + 19 published p5 sketches. Sources pinned: Outline of geometry oldid 1318177804; geometry_textbooks.md B01–B20; threejs.org/docs 2026-09-17. Run plan: `_registry/plans/GEOMETRY_SECTIONS.md`.*
---
*Repopulated 2026-09-19 · append-only · source: _tools/generate/g34_portal_section_sims.py@00a28cb2 (players of the linked articles, each URL 200-checked) · 244 added · 0 deletions*