From 9e9e52ed61a7c7074d8861e270c62f5648bcb467 Mon Sep 17 00:00:00 2001 From: martin veillette Date: Fri, 7 Aug 2026 14:30:29 -0400 Subject: [PATCH] chore: onboard FluidDynamics to the fleet catalog Add catalog row, screenshot, WebP card, and regenerate the Pages index. Co-authored-by: Cursor --- docs/assets/FluidDynamics.webp | Bin 0 -> 4680 bytes docs/index.html | 19 +++++++++++++++---- screenshots/FluidDynamics.png | Bin 0 -> 41642 bytes structure/repos.json | 30 +++++++++++++++++++++++++++--- 4 files changed, 42 insertions(+), 7 deletions(-) create mode 100644 docs/assets/FluidDynamics.webp create mode 100644 screenshots/FluidDynamics.png diff --git a/docs/assets/FluidDynamics.webp b/docs/assets/FluidDynamics.webp new file mode 100644 index 0000000000000000000000000000000000000000..d4c6178292d5abfe254769c99bcecc2ad146b838 GIT binary patch literal 4680 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 MIjTJ^{+as!0a(&oCIA2c literal 0 HcmV?d00001 diff --git a/docs/index.html b/docs/index.html index 348e323..591ebef 100644 --- a/docs/index.html +++ b/docs/index.html @@ -283,7 +283,7 @@

OpenPhysics

Core Simulations

- 18 + 19
-

Explore crystal structure across five screens: the five 2D Bravais lattices, the cubic unit cells and their packing factors, hexagonal against cubic close packing, Miller indices for planes and directions, and finally aperiodic order — Penrose tilings and the hat monotile, whose diffraction patterns are as sharp as a crystal's with a symmetry no crystal can have.

+

Explore crystal structure across five screens: the five 2D Bravais lattices, cubic unit cells and packing factors, hexagonal vs cubic close packing, Miller indices, and aperiodic order — Penrose tilings and the hat monotile, with diffraction as sharp as a crystal's but a symmetry no crystal can have.

crystallographyBravais latticesunit cells
@@ -330,6 +330,17 @@

Doppler Effect

wavessoundfrequency
+ +
Fluid Dynamics simulation screenshotFD
+
+
+

Fluid Dynamics

+ +
+

Explore fluid flow concepts — Intro and Lab screens for interactive fluid dynamics.

+
+
+
Light Propagation simulation screenshotLP
@@ -381,7 +392,7 @@

Oscilloscope

Plate Tectonics

-

Interactive map of the Earth's tectonic plates drawn entirely from real data — PB2002 plate boundaries, USGS earthquakes, Holocene volcanoes and NOAA relief — plus cross-sections through a subduction zone, a spreading ridge and a transform fault, and a reconstruction clock running 50 Myr either side of the present.

+

Interactive map of the Earth's tectonic plates drawn entirely from real data — PB2002 plate boundaries, USGS earthquakes, Holocene volcanoes and NOAA relief — plus cross-sections through a subduction zone, a spreading ridge and a transform fault, and a reconstruction clock running 50 Myr either side of the present. Two further screens port the tabs of PhET's Java simulation: crustal isostasy, and the evolution of a convergent or divergent plate boundary.

plate tectonicsseismologyvolcanism
@@ -661,7 +672,7 @@

Variable Star Photometry

diff --git a/screenshots/FluidDynamics.png b/screenshots/FluidDynamics.png new file mode 100644 index 0000000000000000000000000000000000000000..25436ff961b98424b5468c44285fe3086afe9b33 GIT binary patch literal 41642 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 literal 0 HcmV?d00001 diff --git a/structure/repos.json b/structure/repos.json index 7e160e8..03c4a8b 100644 --- a/structure/repos.json +++ b/structure/repos.json @@ -276,6 +276,26 @@ ], "status": "active" }, + { + "name": "FluidDynamics", + "displayName": "Fluid Dynamics", + "type": "simulation", + "isSimulation": true, + "lineage": "original", + "upstream": null, + "language": [ + "TypeScript" + ], + "framework": "SceneryStack", + "description": "Explore fluid flow concepts — Intro and Lab screens for interactive fluid dynamics.", + "deployedUrl": "https://openphysics.github.io/FluidDynamics", + "physicsTopics": [], + "screens": [ + "Intro", + "Lab" + ], + "status": "active" + }, { "name": "HabitableZones", "displayName": "Habitable Zones", @@ -594,17 +614,21 @@ "TypeScript" ], "framework": "SceneryStack", - "description": "Interactive map of the Earth's tectonic plates drawn entirely from real data — PB2002 plate boundaries, USGS earthquakes, Holocene volcanoes and NOAA relief — plus cross-sections through a subduction zone, a spreading ridge and a transform fault, and a reconstruction clock running 50 Myr either side of the present.", + "description": "Interactive map of the Earth's tectonic plates drawn entirely from real data — PB2002 plate boundaries, USGS earthquakes, Holocene volcanoes and NOAA relief — plus cross-sections through a subduction zone, a spreading ridge and a transform fault, and a reconstruction clock running 50 Myr either side of the present. Two further screens port the tabs of PhET's Java simulation: crustal isostasy, and the evolution of a convergent or divergent plate boundary.", "deployedUrl": "https://openphysics.github.io/PlateTectonics", "physicsTopics": [ "plate tectonics", "seismology", "volcanism", "geophysics", - "plate reconstruction" + "plate reconstruction", + "isostasy", + "subduction" ], "screens": [ - "Plate Tectonics" + "Plate Tectonics", + "Crust", + "Plate Motion" ], "status": "active" },