novolis-governance / extraction-briefs/wave-11-simulation-repo.md
Wave 11 — novolis-simulation + local NuGet platform
Policies that keep the org coherent
dotnetgovernancenovolis
Target repo: novolis-simulation (new)
Also: governance, monorepo nuget.config, consumer migration (dogfooding, StarConflictsRevolt)
Scope (in)
| Area | Novolis home |
|---|---|
| Planar occupancy (move, LOS, raycast, push-out) | `Novolis.Simulation.World` (from `GridCollision2D`) |
| View controllers, `ViewPose` | `Novolis.Simulation.View` (from `FirstPersonCamera`) |
| Planar agent motion (grid vs BVH) | `Novolis.Simulation.Kinematics` |
| Occupancy → `BvhStaticWorld` | `Novolis.Simulation.World.Builders` |
| Local NuGet feed standard | `d:\novolis\nuget.config`, `scripts/pack-novolis-local.ps1` |
Out of scope (wave 11)
- Full camera variant implementations (orbit, third-person) — stubs OK
Novolis.Physics.Materials(future)- nuget.org publish of simulation (local feed first)
Migrations
| Source | Destination |
|---|---|
| `Novolis.Math.Geometry.GridCollision2D` | `Novolis.Simulation.World.PlanarOccupancy` + obsolete alias |
| `Novolis.Math.Geometry.FirstPersonCamera` | `Novolis.Simulation.View.YawPitchController` + obsolete alias |
| `Novolis.Physics.Collision.Simple.RoomMeshBuilder` | `Novolis.Simulation.World.Builders.OccupancyColumnMeshBuilder` |
| `Novolis.Physics.Collision.Simple.GridPhysicsMovement` | `Novolis.Simulation.Kinematics.PlanarAgent` |
Done when
novolis-simulationbuilds, tests pass, packs toartifacts/nuget-local- Policies: library-boundaries.md, simulation-layer-policy.md, local-nuget-development.md
- DoomLite3D and SCR build with
PackageReferenceonly against local feed - Math/physics retain obsolete forwards only (one release)