Emergent Worlds is a fast, accessible web application for creating and observing rule-driven 2D worlds.
The frontend lives in web/. It currently includes a deterministic local Game of Life simulation so the visualization and controls are usable before the ASP.NET Core API is connected.
cd web
npm ci
npm run devUseful checks (run the dotnet commands from the repository root, the npm commands from web/):
dotnet build EmergentWorlds.sln --configuration Release
dotnet test EmergentWorlds.sln --configuration Release --no-build
npm run build
npm run testThe canvas supports pointer dragging to pan and the mouse wheel (or trackpad) to zoom. Saved worlds are kept in browser local storage; the Export and Import controls use the versioned portable JSON format.
src/EmergentWorlds.Coreis the dependency-free .NET domain and simulation library.src/EmergentWorlds.Apiis the ASP.NET Core HTTP boundary (GET /healthis the bootstrap health check).tests/EmergentWorlds.Core.Testscontains Core unit tests.webis the TypeScript, React, and Vite frontend.docs/architecture.mdrecords the initial layer boundaries and determinism contract.
The repository targets .NET 8 LTS and Node.js 20 or newer. All changes land through pull requests; CI runs .NET restore/build/test and frontend lint/test/build on pull requests and pushes to main.