> For the complete documentation index, see [llms.txt](https://hetcreep.gitbook.io/hetcreep-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hetcreep.gitbook.io/hetcreep-docs/readme.md).

# Sprite Design Datum

**A geometry standard for 2D sprite art — and, more usefully, an honest map of which parts of that geometry have a real external standard and which parts nobody has ever published.**

📄 **The standard itself:** [**`SPRITE-DESIGN-DATUM.md`**](/hetcreep-docs/sprite-design-datum.md)

🔗 **Cite** [**`SPRITE-DESIGN-DATUM.md` at a signed tag**](https://github.com/HetCreep/SpriteDesignDatum/blob/v2.0.2/SPRITE-DESIGN-DATUM.md) — rule ids resolve as anchors there, so a conformance record in another project can point at `#L1` and keep working when a heading is reworded.

📖 **Read it at** [**https://hetcreep.gitbook.io/hetcreep-docs**](https://hetcreep.gitbook.io/hetcreep-docs) if you prefer a site. That copy is not citable: the renderer strips the anchors, so `#L1` lands at the top of the page. Measured — 0 of 13 rule anchors survive the render, 13 of 13 survive on the tagged file.

***

## Why this exists

Ask "what canvas size should my sprites be?" and you will get confident answers from a dozen sources, none of which agree, none of which cite anything. Ask "how far may a character's feet drift between the frames of one animation?" and you will get nothing at all — because **no engine, no atlas packer, and no store publishes that number.** Four tools were checked; none stores a per-frame anchor it could validate, so none can publish a tolerance on it.

That gap is the problem. A team fills it by guessing, the guess becomes a convention, the convention becomes "the way it's done", and three renderers later nobody can say why the same character renders noticeably taller standing than walking.

(That last one is a field report from the project this standard came out of, not a published value. The measurement lives in that project's own conformance record, so it cannot be re-derived from anything here — which is exactly why it is written as an anecdote rather than as a number.)

This document does two things about it:

1. **Separates what is genuinely locked from what is merely habit.** Every value is filed under *who locks it* — a graphics API, a device target, an owner's ruling, an external convention with real precedent, your own measurement, or nobody. A value nobody locks is written as unlocked, never promoted to spec to make a table look complete.
2. **Recovers the numbers nobody published, by measuring instead of citing.** Where no authority exists, two large public sprite corpora were measured with a stated, re-runnable instrument, and the method is published alongside the result so you can check it rather than trust it.

## Why "datum"

In dimensioning and tolerancing (ASME Y14.5, ISO 1101), a **datum** is the theoretically exact reference from which the location of every other feature is established. It is not a measurement — it is the thing measurements are taken *from*. Get the datum wrong and every dimension downstream is wrong while each one individually looks fine.

A 2D character has exactly such a reference and almost nobody writes it down: the **foot line**, where the art meets the ground. How tall it renders, where its shadow sits, what order it draws in, whether it appears to stand on the floor or hover above it — all of it is located from that line.

## Who it is for

**Artists and art leads** — the geometry your delivery has to satisfy, and the reason behind each rule. Start with [`CHECKLIST.md`](/hetcreep-docs/checklist.md), then read the rules it points at.

**Engine and gameplay programmers** — which invariants belong in code, which belong in data, and which are enforced by nothing but attention. `L1`–`L4` and `E1`–`E3` are the load-bearing ones.

**Technical directors and producers** — a written standard you can point a contractor at, and a conformance record shape that makes "did we meet it?" a question with an answer.

**AI coding agents** — see [`AGENTS.md`](/hetcreep-docs/agents.md), which states what an agent may and may not change, and how to answer for each rule instead of quietly reinterpreting it.

## How to use it

1. **Read `SPRITE-DESIGN-DATUM.md` once, in order.** The layer table near the top is the key to everything after it.
2. **Write your own conformance record.** One file in your project that, for every rule, states your value, where it came from, and whether you meet it. The standard cannot see your project; the record is the only thing that makes it binding.
3. **Re-measure Layer B for yourself.** The tolerances here are real and externally derived, but the *constants* — pixels per world unit, where your feet sit, your canvas — depend on your camera and your art. Anyone who hands you those numbers without measuring your corpus is guessing.

## What it deliberately does not do

* **It does not tell you what canvas size to use.** No standard does. It tells you what happens when one set of files is consumed by several renderers that each decide size differently, which is the actual failure.
* **It does not ship code, a linter, or a schema.** The numbers live in the document, once. A machine-readable copy would be a second source of truth for the same values — the exact defect the standard spends several pages warning about.
* **It does not claim completeness.** It names its own coverage gaps, including a large one: not a single web-platform source appears in its published-values register. `devicePixelRatio`, CSS box sizing, `object-fit`, and browser image decoding are *unsearched*, not absent.

## Provenance

The first edition was written from one person's measurement alone. It was then handed to an adversarial verification pass over every claim it made — **96 claims: 44 held, 50 corrected, 2 unverifiable** — and the live product it came from was opened in a browser and measured. A second sweep went looking for published external tolerances across engine importers, atlas packers, store requirements, perceptual standards, community sprite standards, and graphics API specifications: **172 published values found, 72 quantities with no published source, 12 overclaims caught by a sceptic.**

Every point where an earlier edition was wrong is annotated as wrong rather than quietly deleted. That is not modesty — a standard that hides its corrections cannot be audited.

## Licence

© 2026 HetCreep. Released under [CC BY-NC-ND 4.0](https://creativecommons.org/licenses/by-nc-nd/4.0/).

**Free to read, cite, and conform to, with attribution.** Conforming to this document does not make your project a derivative work of it — build what you like from it and ship that freely, commercially or otherwise. The restriction is on redistributing or adapting **the document**.

Commercial use, adaptation, or redistribution of the document as part of a paid product or service requires a separate written licence. See [`LICENSE`](https://github.com/HetCreep/SpriteDesignDatum/tree/main/LICENSE/README.md).

## Supporting this

Measuring two public corpora, checking every claim against its source, and writing down the quantities that have **no** source took considerably longer than writing the rules would have. If the standard saved you that work, [GitHub Sponsors](https://github.com/sponsors/HetCreep) is where to say so.

Nothing here is behind it. The document is free to read, cite, and conform to, sponsored or not, and it always will be — the paid thing is a licence to redistribute or adapt the document itself, which is a different transaction and is described in [`LICENSE`](https://github.com/HetCreep/SpriteDesignDatum/tree/main/LICENSE/README.md).

> ⚠️ The licence text is a **draft**, written by an AI assistant at the owner's direction and not reviewed by a lawyer. `LICENSE` states plainly what a lawyer still has to settle before it is relied on. Facts and measurements are not copyrightable in most jurisdictions; what copyright protects here is the expression — the prose, the structure, and the layer framework.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hetcreep.gitbook.io/hetcreep-docs/readme.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
