> Cinder 0.1.0 documentation: ADR-0006: Start from scratch rather than fork stargine
> Canonical page: https://cinder.ash10.dev/docs/adr/0006-no-fork-of-stargine/ · Source: `docs/adr/0006-no-fork-of-stargine.md` in the engine repository (engine commit 47c9352, imported 2026-11-09)
> Index of every page for agents: https://cinder.ash10.dev/llms.txt

# 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 through `sdl-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.toml` depends on `mojo = ">=1.1.0.dev2026082605"` from the nightly channel and is
  `linux-64` only. 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.
