ADR-0006: Start from scratch rather than fork stargine
Status: Accepted, 2026-11-08
Context #
The operator asked whether to fork https://github.com/ssslakter/stargine (Apache-2.0, 17 stars, 68 commits, last commit 2026-08-28, ~3,100 lines of Mojo) and build Cinder from it. Inspected on 2026-11-08 by shallow clone.
Findings:
- Rendering is OpenGL 4.5 through
opengl-mojo; windowing throughsdl-mojo(both from MojoGameDevs, hand-written bindings, the SDL one unpinned). The mission mandates wgpu-native with Vulkan and Metal, generated bindings, and exact pins. The GPU layer, renderer, shader loader, cubemap and texture code, the majority of the repository, would be discarded. pixi.tomldepends onmojo = ">=1.1.0.dev2026082605"from the nightly channel and islinux-64only. Cinder pins stable 1.2.0 and targets linux-64 and osx-arm64.- No ECS, physics, glTF, animation, audio, asset pipeline, job system or tests of the kind required.
- The remaining reusable parts (a small vector/matrix module, an event handler sketch) are smaller than the cost of adapting them to Cinder's SIMD math and ECS conventions and re-licensing headers.
Decision #
Cinder starts from an empty repository. stargine is kept as a reference (not a dependency and not
vendored) for one thing: a working, compiled example of SDL3 FFI from Mojo on the 1.x line, useful when
writing the platform layer and when debugging bindings. Any code copied from it, if ever, carries the
Apache-2.0 notice in THIRD_PARTY_NOTICES.md.
Consequences #
- No inherited design debt around OpenGL state or hand-written bindings.
- Zero immediate cost; the reference is consulted during Phase 1 spike 1 and Phase 3.