JARVIGManual

Architecture decision records

An ADR is accepted architecture. It outranks designdoc.html only for the decision it names, and only when it says what it supersedes.

Status values: Proposed, Accepted, Superseded, Rejected.

Do not edit an Accepted ADR in place to change the decision. Write a new ADR and set Superseded By on the old one.

IDTitleStatus
0001One engine, multiple hostsAccepted
0002PlayCanvas upstream and license policyPartially superseded by 0017
0006WebGPU as the first graphics backendPartially superseded by 0017
0003No BSP world modelAccepted
0004Hierarchical coordinate framesAccepted
0005CryEngine license boundaryAccepted
0007Materials compile through an IRAccepted
0008Research stays behind flagsAccepted
0009ECS identity separated from storageAccepted
0010Documentation authority orderAccepted
0011CLI parity for critical editor operationsAccepted
0012Content-addressed derived dataAccepted
0013World identity is multiplayer-readyAccepted
0014Codename JARVIGAccepted
0015Dependency directionAccepted
0016Repository layoutAccepted
0017Native engine core and multi-host runtimeAccepted
0018Engine-owned capabilitiesAccepted
0019RHI hides backend typesAccepted
0020Render space and clip conventionAccepted, depth mapping partially superseded by 0021
0021Reversed-Z and an infinite far planeAccepted
0022API layers and one type registryAccepted
0023ABI struct negotiation and calling conventionAccepted
0024GPU resource lifetimeAccepted
0025A render view is not a worldAccepted
0026A render snapshot is not a worldAccepted
0027Texture color space is metadata, not a shader guessAccepted
0028Standard metallic/roughness surfaceAccepted
0029Direct light direction, units, and view packetsAccepted
0030Graphics adapter policy belongs to JARVIGAccepted
0031The native editor shell is not the engineAccepted
0032The dock tree is editor state, not a window treeAccepted
0033The editor camera is not a scene entityAccepted
0034The transform gizmo is editor overlay stateAccepted
0035HDR scene color is not the swapchainAccepted
0036Environment diffuse is scene lightingAccepted
0037Opaque materials cull back facesAccepted
0038Environment specular is split-sum until a cubemap existsAccepted
0039A local reflection probe is captured scene radianceAccepted
0040An authorable world object has one EntityUuidAccepted, duplicate/delete sentence superseded by 0041
0041Duplicating or deleting an entity owns its subsystem recordAccepted
0042Reflection probe mips are a GGX prefilterAccepted
0043Direct-light shadows are a visibility termAccepted
0044Indirect diffuse is probe irradianceAccepted
0045A project and a level are documents, not GPU stateAccepted
0046One renderer, scalable quality, optional ray tracingAccepted
0047Direct shadows are cascaded visibilityAccepted
0048A game framework sits above the worldAccepted
0049Component membership is not a second registryAccepted
0050The authored world is source data; the runtime world is an instanceAccepted
0051An imported mesh is an asset, not a levelAccepted
0052An in-process job queue is not a second engineAccepted
0053A joint rides on the local frameAccepted
0054The character editor edits the jointAccepted, level-open sentence partially superseded by 0056, character isolation by 0059
0055A character document is rigid parts on the jointAccepted, pivot sentence partially superseded by 0056, startup-level sentence by 0059
0056Sockets sit on the ball, and the level editor is the defaultAccepted, pivot-click sentence partially superseded by 0057, character-entry sentence by 0059
0057Joint markers are picked in the Character EditorAccepted
0058Terrain is a local heightfield in the existing worldAccepted. Character isolation is 0059
0059A character asset, a player definition, and a player start are different objectsAccepted. Empty character path clarified by 0060
0060The hub chooses a project before the editor startsAccepted
0061Virtual geometry defaults on. Microgeometry stays adaptiveAccepted
0062A parametric solid is the object. Meshlets and Einstein are derivedAccepted. The size-only save sentence is superseded by 0066
0063A world's render residency does not outlive that worldAccepted. The empty-record sentence for a parametric solid is superseded by 0064
0064A parametric solid builds its clusters from the derived surfaceAccepted. The close-view patch sentence for an exact solid is superseded by 0065. The size-only save sentence is superseded by 0066
0065An exact parametric solid is classified and draws no reliefAccepted. The size-only save sentence is superseded by 0066
0066A solid keeps its parameters, and the inspector shows what it can doAccepted. The permanent Modeling form and the mouse-up face commit are superseded by 0067
0067A modeling operation is one session across the toolbar, the panel, and the viewportAccepted. Mixing commands into Features is superseded by 0068
0068Selection promotes, and an edit is one transactionAccepted

RFCs are not in this list. See ../rfc/README.md.