diff --git a/Fensalir.sln b/Fensalir.sln
index b021b46..c5c2320 100644
--- a/Fensalir.sln
+++ b/Fensalir.sln
@@ -29,8 +29,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aquarium.Fractal.Receipt",
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Aquarium.Fensalir", "src\Aquarium.Fensalir\Aquarium.Fensalir.csproj", "{F9274D99-3CC6-42B6-9817-EC7F19663B1D}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Saga", "src\Saga\Saga.csproj", "{30324495-56BE-4D45-80E8-CE03C24726C8}"
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -161,18 +159,6 @@ Global
{F9274D99-3CC6-42B6-9817-EC7F19663B1D}.Release|x64.Build.0 = Release|Any CPU
{F9274D99-3CC6-42B6-9817-EC7F19663B1D}.Release|x86.ActiveCfg = Release|Any CPU
{F9274D99-3CC6-42B6-9817-EC7F19663B1D}.Release|x86.Build.0 = Release|Any CPU
- {30324495-56BE-4D45-80E8-CE03C24726C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {30324495-56BE-4D45-80E8-CE03C24726C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {30324495-56BE-4D45-80E8-CE03C24726C8}.Debug|x64.ActiveCfg = Debug|Any CPU
- {30324495-56BE-4D45-80E8-CE03C24726C8}.Debug|x64.Build.0 = Debug|Any CPU
- {30324495-56BE-4D45-80E8-CE03C24726C8}.Debug|x86.ActiveCfg = Debug|Any CPU
- {30324495-56BE-4D45-80E8-CE03C24726C8}.Debug|x86.Build.0 = Debug|Any CPU
- {30324495-56BE-4D45-80E8-CE03C24726C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {30324495-56BE-4D45-80E8-CE03C24726C8}.Release|Any CPU.Build.0 = Release|Any CPU
- {30324495-56BE-4D45-80E8-CE03C24726C8}.Release|x64.ActiveCfg = Release|Any CPU
- {30324495-56BE-4D45-80E8-CE03C24726C8}.Release|x64.Build.0 = Release|Any CPU
- {30324495-56BE-4D45-80E8-CE03C24726C8}.Release|x86.ActiveCfg = Release|Any CPU
- {30324495-56BE-4D45-80E8-CE03C24726C8}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -187,6 +173,5 @@ Global
{A9D41C48-7E78-4D75-A814-0C1500245EFC} = {0AB3BF05-4346-4AA6-1389-037BE0695223}
{C0D1BFAC-B1B4-4350-92A7-D537AE382909} = {07C2787E-EAC7-C090-1BA3-A61EC2A24D84}
{F9274D99-3CC6-42B6-9817-EC7F19663B1D} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
- {30324495-56BE-4D45-80E8-CE03C24726C8} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
EndGlobalSection
EndGlobal
diff --git a/README.md b/README.md
index 7e2cea9..a34f290 100644
--- a/README.md
+++ b/README.md
@@ -136,9 +136,6 @@ how WASAPI or Faust got invited to the party.
audio/synth host, bundled assets, and renderer-owned shaders.
- `src/Aquarium.Engine.Fractal`: `.aquageo`, IFS/fractal fields, temporal
reservoirs, evidence tracks, contribution cache, and lowering machinery.
-- `src/Saga`: stochastic planetary flow middleware for cube-sphere Transport
- fields, arbitrary forcing, Coriolis-aware advection, and learned atmosphere /
- ocean / debris flow packets.
- `src/Aquarium.Fensalir`: Fensalir splash/art reconstruction demo.
- `src/Aquarium.Sample.Minimal`: tiny client proving the runtime boundary.
- `src/Aquarium.Zyphos`: planetary/fractal terrain demo.
diff --git a/docs/README.md b/docs/README.md
index 8c6243d..0434328 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -13,8 +13,6 @@ historical branch scar.
## Fields, Reservoirs, And Fractals
-- `../src/Saga/README.md`: studio-facing Saga middleware pitch and subproject
- overview for stochastic planetary flow.
- `papers/fensalir-pipeline.tex`: living MiKTeX paper for the Fensalir
pipeline, research spine, domain reservoir model, and evaluation plan.
- `papers/fensalir-native-domain-reservoirs.tex`: focused SIGGRAPH-shaped
diff --git a/packages/AquaSynth.Core.0.1.0-alpha.2.nupkg b/packages/AquaSynth.Core.0.1.0-alpha.2.nupkg
deleted file mode 100644
index 3b7ea64..0000000
Binary files a/packages/AquaSynth.Core.0.1.0-alpha.2.nupkg and /dev/null differ
diff --git a/packages/AquaSynth.Faust.0.1.0-alpha.2.nupkg b/packages/AquaSynth.Faust.0.1.0-alpha.2.nupkg
deleted file mode 100644
index 45b861f..0000000
Binary files a/packages/AquaSynth.Faust.0.1.0-alpha.2.nupkg and /dev/null differ
diff --git a/packages/AquaSynth.Faust.0.1.0-alpha.3.nupkg b/packages/AquaSynth.Faust.0.1.0-alpha.3.nupkg
deleted file mode 100644
index bd1391e..0000000
Binary files a/packages/AquaSynth.Faust.0.1.0-alpha.3.nupkg and /dev/null differ
diff --git a/src/Saga/README.md b/src/Saga/README.md
deleted file mode 100644
index c10367e..0000000
--- a/src/Saga/README.md
+++ /dev/null
@@ -1,165 +0,0 @@
-# Saga
-
-**Planetary flow middleware for worlds that refuse to sit still.**
-
-Saga is Fensalir's stochastic planetary flow organ: a cube-sphere native system
-for streaming atmosphere, ocean, gas, debris, heat, and other transport fields
-across whole planets at arbitrary level of detail.
-
-It is built for studios that want living planets without hand-authoring a fake
-weather loop, baking one heroic texture atlas, or stapling a particle system to
-a skybox and calling it climate. Saga turns terrain, bathymetry, atmospheric
-state, ocean reanalysis, arbitrary forcing sources, and learned stochastic
-transport into compact flow packets the engine can stream, inspect, simulate,
-and render.
-
-No poles. No flat-Earth texture tricks. No private renderer arrows pretending
-to be physics. Just a planet-scale flow field with provenance, uncertainty, and
-enough teeth to survive a camera dive from orbit to coastline.
-
-## The Pitch
-
-Modern games and simulation tools can render planets. They rarely make them
-move like planets.
-
-Saga is the missing middleware layer between static world geometry and dynamic
-planetary behavior:
-
-```text
-planet domain + relief + state + forcing + learned transport
--> stochastic advection packets
--> streaming flow pages, particles, weather, debris, clouds, currents, debug
-```
-
-Use it for:
-
-- ocean surface currents and debris drift;
-- atmospheric wind fields and gas-giant bands;
-- volcanic, nuclear, magical, artificial, or stellar energy injection;
-- multi-sun lighting and thermal forcing;
-- tides, rotation, Coriolis-dominated flow, and exotic planetary regimes;
-- gameplay-visible particles, clouds, smoke, spores, ash, foam, or pollutants;
-- offline worldbuilding, cinematic previs, and realtime renderer guidance.
-
-Saga is not a weather forecast API wearing a costume. It is a reusable engine
-organ for representing and streaming stochastic flow over Fensalir's planetary
-domains.
-
-## What Makes It Different
-
-### Cube-Sphere Native
-
-Saga speaks Fensalir's optimized cube-sphere address space directly. Lat/lon
-grids are source formats, not runtime truth. Every packet belongs to a tile,
-LOD, projection, local tangent frame, and provenance chain.
-
-### Stochastic By Design
-
-Real flow is not one obedient arrow. Saga packets carry mean transport,
-diffusivity/covariance, confidence, and optional transition kernels. Renderers
-can draw clean vectors; simulations can keep the uncertainty instead of
-throwing it into the sea and acting surprised later.
-
-### Arbitrary Forcing
-
-The evaluator is not Earth-locked. Saga conditions on explicit rotation and
-Coriolis features plus variable-cardinality energy, mass, and momentum forcing
-sources:
-
-- one sun, binary suns, or no sun worth trusting;
-- moons and tidal drivers;
-- eruptions, impacts, reactors, orbital mirrors, industrial heat, spellstorms;
-- gas-giant internal heat and extreme atmosphere bands;
-- transient shock events and persistent planetary gradients.
-
-Source count is data, not architecture.
-
-### Built For Streaming
-
-Saga is designed for camera-relative planet rendering:
-
-- coarse flow far from the camera;
-- refined flow where the player, shot, simulation, or uncertainty demands it;
-- parent/child LOD consistency;
-- cross-face seam continuity;
-- explicit stale-page and model-version checks.
-
-The renderer samples packets. It does not invent climate in a pixel shader
-because the schedule got nervous.
-
-## Architecture
-
-Saga lives inside Fensalir because Fensalir already owns the machinery it needs:
-
-- `CubeTileKey` and cube-sphere projection math;
-- field evidence layers, especially `Transport`;
-- selected cuts and residency planning;
-- GPU resource pages and debug telemetry;
-- renderer/simulation lowering boundaries.
-
-Saga's live shape:
-
-```text
-source manifests
- -> cube-sphere dataset bakes
- -> training shards
- -> FlowNet-S / FlowNet-M / optional FlowNet-T
- -> Saga stochastic advection packets
- -> Fensalir Transport field claims
- -> GPU pages, particle advection, weather visuals, debug probes
-```
-
-## Model Line
-
-Saga uses a staged neural architecture plan:
-
-- `FlowNet-S`: 8-15M parameters, local baseline for ingestion, calibration, and
- export.
-- `FlowNet-M`: 40-60M parameters, first serious runtime/distillation model with
- local tile encoders, a cube-sphere graph processor, and stochastic heads.
-- `FlowNet-T`: 150-300M parameters, optional global teacher for offline
- distillation and ensemble behavior.
-
-The model emits stochastic advection parameters, not just velocity:
-
-- tangent mean velocity;
-- positive-semidefinite 2x2 covariance/diffusivity;
-- calibrated confidence;
-- optional neighbor transition logits;
-- provenance and model identity.
-
-## Data Spine
-
-Saga's first research targets:
-
-- ETOPO / GEBCO for relief and bathymetry;
-- ERA5 for atmosphere;
-- GLORYS / OSCAR / HYCOM candidates for ocean currents;
-- PlasticAdrift and drifter transition matrices for stochastic debris
- transport validation;
-- synthetic analytic worlds for contract and seam tests before the ocean gets
- expensive.
-
-Every source needs a manifest. No manifest, no training shard. The altar wants
-receipts.
-
-## First Vertical Slice
-
-1. Define the Saga packet contracts.
-2. Bake a synthetic cube-sphere flow world.
-3. Export Transport field pages.
-4. Render/debug vectors, covariance ellipses, confidence, and selected LOD.
-5. Train FlowNet-S on synthetic + tiny ERA5 wind.
-6. Add ocean surface current targets.
-7. Add PlasticAdrift transition validation.
-8. Promote FlowNet-M when the baseline has failed in useful, measured ways.
-
-## Boundary
-
-Saga owns reusable planetary flow mechanics. Clients own meaning.
-
-Fensalir clients may ask for currents, winds, debris drift, cloud motion, ash
-transport, or gas-giant bands. They may not create a private flow authority that
-bypasses Saga packets and Fensalir Transport claims.
-
-That is the deal: the planet can be wild, but the authority has to be clean.
diff --git a/src/Saga/Saga.csproj b/src/Saga/Saga.csproj
deleted file mode 100644
index 26dee97..0000000
--- a/src/Saga/Saga.csproj
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
- net10.0
- enable
- enable
-
-
-
diff --git a/src/Saga/SagaOrgan.cs b/src/Saga/SagaOrgan.cs
deleted file mode 100644
index 89de3ea..0000000
--- a/src/Saga/SagaOrgan.cs
+++ /dev/null
@@ -1,65 +0,0 @@
-using Aquarium.Engine.Fractal;
-using System.Numerics;
-
-namespace Saga;
-
-public static class SagaOrgan
-{
- public const string Name = "Saga";
-
- public const string Description =
- "Cube-sphere stochastic planetary flow for Fensalir Transport fields.";
-}
-
-public readonly record struct SagaFlowDomain(
- string DomainId,
- double PlanetRadiusMeters,
- string ProjectionId,
- string GridVersion);
-
-public readonly record struct SagaFlowRequest(
- SagaFlowDomain Domain,
- CubeTileKey Tile,
- int SampleResolution,
- double TimeSeconds,
- SagaCoriolisFrame Coriolis,
- IReadOnlyList ForcingSources);
-
-public readonly record struct SagaCoriolisFrame(
- Vector3 RotationAxis,
- double AngularVelocityRadiansPerSecond,
- double LocalF,
- Vector2 LocalBeta);
-
-public readonly record struct SagaForcingSource(
- string SourceId,
- SagaForcingKind Kind,
- SagaForcingGeometry Geometry,
- Vector3 PlanetDirection,
- Vector3 LocalTangentDirection,
- double Intensity,
- double RadiusMeters,
- double Attenuation,
- double TimePhase);
-
-public readonly record struct SagaAdvectionSample(
- Vector2 MeanVelocity,
- SagaCovariance2D Diffusivity,
- double Confidence);
-
-public readonly record struct SagaCovariance2D(double C00, double C01, double C11);
-
-public enum SagaForcingKind
-{
- Energy,
- Mass,
- Momentum,
-}
-
-public enum SagaForcingGeometry
-{
- Directional,
- Point,
- Area,
- Volume,
-}
diff --git a/state/map.yaml b/state/map.yaml
index 2258fa5..3a7327d 100644
--- a/state/map.yaml
+++ b/state/map.yaml
@@ -21,12 +21,6 @@ current_model:
implementation: src/Aquarium.Engine.Fractal
tests: tests/Aquarium.Engine.Fractal.Tests
receipt_tool: tools/Aquarium.Fractal.Receipt
- saga:
- implementation: src/Saga
- purpose: >
- Stochastic planetary flow middleware for cube-sphere Transport fields,
- arbitrary forcing, explicit Coriolis/rotation conditioning, and learned
- atmosphere/ocean/debris advection packets.
demos:
fensalir_splash: src/Aquarium.Fensalir
minimal: src/Aquarium.Sample.Minimal
diff --git a/state/scratch-fractal-surface-visible.md b/state/scratch-fractal-surface-visible.md
deleted file mode 100644
index 438d920..0000000
--- a/state/scratch-fractal-surface-visible.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# Fractal Surface Visible Slice
-
-Objective: make the live Zyphos scene test authored fractal reservoir terrain instead of a decorative proxy.
-
-Kept:
-- GPU-resident 2M splat reservoir field.
-- Separate SDF, PBR, and radiosity reservoir layers.
-- `.aquageo` selected-cut program lowering.
-
-Changed:
-- Packed IFS transform rows now preserve cube-sphere tile face/level/x/y.
-- Compute maps authored splats onto cube-sphere faces instead of a generic +Z cap.
-- Visible splats render as tangent-frame surface patches, not camera-facing stickers.
-- Zyphos camera targets the selected domain while keeping the parent as orbit anchor.
-
-Still not good enough:
-- The live view is fast and the reservoir is populated, but the current surface-consumption pass still reads too abstractly under the noisy starfield.
-- Next coherent cut is a real clustered surface resolve or ray-query style splat surface pass, not more billboard cosmetics.