CollisionAvoidance is a SAFE-stack F# application that is being shaped into a collision-analysis workflow for treatment plans, body geometry, and enabled accessories.
The codebase currently has two layers of logic:
- A collision-analysis domain model in
src/Sharedand some server/client helper modules built around that model. - The original SAFE template todo flow, which is still the live API and UI path in
src/Server/Server.fsandsrc/Client/Index.fs.
src/Shared: shared DTOs for plans, geometry, accessories, and collision resultssrc/Server: server-side composition and collision-analysis scaffoldingsrc/Client: Elmish/Feliz client logic and view helperstests: xUnit test projects for shared, server, and client logicdocs: project documentation split by concern
Prerequisites:
- .NET 8 SDK
- Node.js 18+ and npm 9+ for the client app
Useful commands:
dotnet run --project Build.fsproj -- Run
dotnet test Application.sln
dotnet run --project Build.fsproj -- WatchRunTestsThe default SAFE development setup serves:
- Client:
http://localhost:8080 - Server proxy:
http://localhost:5000
The collision domain model is already defined, but the end-to-end collision run flow is still a scaffold. The server entry point and the main client page still expose the starter todo example, while the newer collision modules exist as isolated building blocks.