Give a game real 3D models that fit together and run on a phone — free CC0 models from Homie's starter library (Kenney, KayKit, Poly Haven, ambientCG) copied in with their licence, the person's own…

Apache-2.0Auto-check passedGame Development

Install Models

skills CLI
$ npx skills add hashgraph-online/awesome-codex-plugins --skill models -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install hashgraph-online/awesome-codex-plugins models --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/hashgraph-online/awesome-codex-plugins.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/homie-rocks/homie/skills/models .claude/skills/models && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
models
GitHub stars
1.2k
Token cost
~3k tokens
SKILL.md length
1,244 words
Files
5 (incl. scripts, references)
Skills in repo
736
Repo updated
First seen
Licence
Apache-2.0

At a glance

Give a game real 3D models that fit together and run on a phone — free CC0 models from Homie's starter library (Kenney, KayKit, Poly Haven, ambientCG) copied in with their licence, the person's own…

  • Works in 4 steps: The engine (free): procedural geometry,… → The starter library (free, CC0): assets… → The person's own files: assets add… → …
  • Someone wants 3D models
  • SKILL.md covers The starter library (free), The person's own files, Generated props (paid): price,… and Generated characters (paid):…, plus 4 more sections
  • Runs JavaScript scripts from its folder; calls node and npx

What it does

Models is an agent skill from hashgraph-online/awesome-codex-plugins. Give a game real 3D models that fit together and run on a phone — free CC0 models from Homie's starter library (Kenney, KayKit, Poly Haven, ambientCG) copied in with their licence, the person's own files checked and made phone-sized, and generated props (a concept image in the game's locked style, then Tripo P1 image-to-3D) and generated rigged characters (an A-pose concept, then Meshy 7.1 with its auto-rig, the library's clips retargeted onto it) on the person's OWN fal account under a hard budget with a receipt…

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including scripts and reference files (for example `agents/openai.yaml`, `references/RIGHTS.md` and `references/models.json`). Compatibility notes: Node 22. Generated props use Tripo's models, and generated characters Meshy's, on the creator's own fal account (FALKEY); fal's own MCP server…

It sits in Game Development, covering 3D graphics and WebGL. The repository describes itself as: A curated list of awesome OpenAI Codex / ChatGPT plugins, skills, and resources. The 1 Codex Marketplace. See live plugins at: https://hol.org/plugins/best-codex-plugins. The licence is Apache-2.0.

When your agent uses it

  • Someone wants 3D models
  • Free assets for a game
  • Asks where a model came from
  • Whether it may be used

Example prompts

  • “s clips retargeted onto it) on the person”
  • “free assets”
  • “/models”

Requirements

  • Node.js
  • A credential in FAL_KEY
  • Compatibility (from SKILL.md): Node 22. Generated props use Tripo's models, and generated characters Meshy's, on the creator's own fal account (FAL_KEY); fal's own MCP server (https://mcp.fal.ai/mcp-relay) reads schemas and prices.

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. The engine (free): procedural geometry, tinted from the palette. The house's best looks are procedural;
  2. The starter library (free, CC0): assets find, then assets add.
  3. The person's own files: assets add --file … --license … (ask whose it is).
  4. Generated (paid, their own fal account, under a budget): a concept, then a mesh: props, and rigged characters

What it can do on your machine

Read from SKILL.md and the folder at commit 16b4156. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (JavaScript), which the agent can run.

    Shell commands in SKILL.md call:

    • node
    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Node 22. Generated props use Tripo's models, and generated characters Meshy's, on the creator's own fal account (FAL_KEY); fal's own MCP server (https://mcp.fal.ai/mcp-relay) reads schemas and prices.

    From compatibility in the SKILL.md frontmatter.

Context cost

Models loads about 3k tokens when it runs, and up to ~5.2k if it reads all its reference files. Until then it costs about 232 tokens; SKILL.md has 1,244 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~232
When it runs · the whole SKILL.md, loaded when a task matches
~3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from hashgraph-online/awesome-codex-plugins at commit 16b4156, republished under its Apache-2.0 licence (© hashgraph-online). 1,244 words, ~2,984 tokens.

Download SKILL.mdSave it as .claude/skills/models/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
models
description
Give a game real 3D models that fit together and run on a phone — free CC0 models from Homie's starter library (Kenney, KayKit, Poly Haven, ambientCG) copied in with their licence, the person's own files checked and made phone-sized, and generated props (a concept image in the game's locked style, then Tripo P1 image-to-3D) and generated rigged characters (an A-pose concept, then Meshy 7.1 with its auto-rig, the library's clips retargeted onto it) on the person's OWN fal account under a hard budget with a receipt per call — every asset recorded with its provenance and licence (RIGHTS.md, the credits page), checked against phone budgets, shown in a lineup at true scale, and loaded through one safe loader. Use when someone wants 3D models, props, characters, scenery or "free assets" for a game, asks where a model came from or whether it may be used, or says the models look like they are from different games.
compatibility
Node 22. Generated props use Tripo's models, and generated characters Meshy's, on the creator's own fal account (FAL_KEY); fal's own MCP server (https://mcp.fal.ai/mcp-relay) reads schemas and prices.
metadata.providers
fal tripo

Models for a game: free first, everything licensed, one look

Read the style skill first: a game's models are made under its decisions (render style, palette, scale, budgets). Routes, cheapest coherent one first:

  1. The engine (free): procedural geometry, tinted from the palette. The house's best looks are procedural; never replace one with generated meshes without the owner's ask.
  2. The starter library (free, CC0): assets find, then assets add.
  3. The person's own files: assets add --file … --license … (ask whose it is).
  4. Generated (paid, their own fal account, under a budget): a concept, then a mesh: props, and rigged characters (below). A character's rig, clips and feel are the animate skill's.

Commands run from inside the studio: npx --no-install homie-studio assets … (free) and this skill's script for the paid route: node "${CLAUDE_PLUGIN_ROOT}/skills/models/scripts/models.mjs" <command> (in an app with Homie's tools: assets_find, asset_add, asset_make, asset_check, asset_lineup, asset_rights).

The starter library (free)

sh
npx --no-install homie-studio assets find "fox"                    # CC0 items, phone-sized, with triangles and size
npx --no-install homie-studio assets find "pine tree" --family kenney
npx --no-install homie-studio assets add <id> kenney-cube-pets/animal-fox --height 0.7 --card "Characters/Fox"

One library family per game (cast.family): mixing Kenney with KayKit shows. An added item is COPIED into games/<id>/public/models/ (never loaded from homie.rocks at runtime), recorded in assets/manifest.json with its pack, origin and SHA-256, and its pack is credited on the landing's credits page (kindly: CC0 needs no credit). HOMIE_LIBRARY points at another copy of the library (a folder or an address).

The person's own files

sh
npx --no-install homie-studio assets add <id> --file /path/to/lantern.glb --license own --as lantern --height 0.6

Ask whose it is and under what licence: own, cc0, cc-by-4.0 (with --attribution "<who, where>"), eula:<store>, market:<listing>, other (with --notes). The file is refused before anything reads it when it loads anything from an address (an external URI), declares a buffer over the import cap, or is over 64 MB; a .gltf may bring its .bin and pictures from its own folder only. Then it is made phone-sized (its tier's triangles and picture size, the pivot at the bottom centre, its height in metres, meshopt geometry, WebP pictures); the raw file stays in art/<slug>/raw/ (git-ignored; the studio's R2 with media move once it has storage), never shipped and never committed. FBX, OBJ and .blend: export a .glb first (Blender: File > Export > glTF 2.0, binary).

Generated props (paid): price, budget, look, then the mesh

sh
node <models.mjs> check                                  # the fal key (a free check) and the registry
node <models.mjs> quote <id> --count 3                   # concept + mesh, priced live (about US$0.54 a prop)
node <models.mjs> budget <id> --cap 3                    # the cap the person agreed to, for this game's models
node <models.mjs> prop <id> lantern --card "Items/Ember Lantern" --what "an iron lantern with a warm ember inside" --height 0.6 --dry-run
node <models.mjs> prop <id> lantern --card "Items/Ember Lantern" --what "…" --height 0.6 --yes     # the concept only
#   LOOK at art/lantern/concept.*: the thing, whole, in the game's style, on a plain background?
node <models.mjs> prop <id> lantern --mesh --yes          # Tripo P1, textured, face_limit 1500; then optimised and recorded
npx --no-install homie-studio assets lineup <id>         # true scale, silhouettes, palette drift
  • Tell the person the price first and agree a cap; prop refuses with no budget, refuses past the cap, and asks again without --yes. The receipt is written the moment fal accepts the job (art/receipts.jsonl, the game's art/<id>-models/budget.json); running the same step again resumes it and never pays twice.
  • The concept starts from the derived style prompt (homie-studio style prompt <id>) with the golden images as references, on a plain background with even light (baked light is the top quality problem of image-to-3D).
  • Never a loop. Look at the concept before the mesh, and at the model in the lineup before the next one. A bad concept: change the words and --concept-again once. Spend the riskiest prop first.
  • references/models.json is the dated registry of endpoints, prices and schemas. Endpoints retire and reprice monthly: node <models.mjs> registry reads every price again for free; update the registry (--write) when one moved, and never hard-code an endpoint anywhere else. fal's own MCP server (get_model_schema, get_pricing, search_models for a newer Tripo version; the art skill says how to connect it) reads the same facts; a paid run still goes through models.mjs, never the MCP's run_model.
  • Tripo's models run on fal here (tripo3d/... endpoints): one account, prices read live, the receipts above. Tripo's own CLI and MCP server (tripo-cli, tripo mcp) bill a separate Tripo account in Tripo credits, outside this skill's budget and receipts, and a free Tripo plan makes its outputs public under CC BY 4.0 (references/RIGHTS.md): keep a game's models on the fal route. The Homie mod (Claude Code) and Homie's hooks (Codex) hold a tripo generating command or a Tripo MCP tool as a call whose cost cannot be read first.
  • A painted mood image for the style board: node <models.mjs> mood <id> b --yes (about US$0.035; a target).

Generated characters (paid): an A-pose concept, then a rigged mesh

Library characters first (assets find "knight" --kind character: KayKit's adventurers and skeletons, Kenney's mini and blocky characters, all CC0 and animated). For one the library cannot cover:

sh
node <models.mjs> character <id> ranger --card "Players/Ranger" --what "a forest ranger: green hooded cloak, leather tunic, a bow on the back" --height 1.45 --like kaykit-adventurers/rogue --dry-run
node <models.mjs> character <id> ranger --card "Players/Ranger" --what "…" --height 1.45 --like kaykit-adventurers/rogue --yes   # the concept only
#   LOOK at art/ranger/concept.*: one character, whole, in an A-pose, in the game's style, on a plain background?
node <models.mjs> character <id> ranger --mesh --yes     # Meshy 7.1 + auto-rig, about US$1.40; then free: optimised, rig mapped, clips retargeted
npx --no-install homie-studio anim preview <id> --asset ranger   # LOOK at the preview sheet

--like takes a library character's own thumbnail as the style reference (so a generated hero stands beside the library's in one look); golden images, when the game has them, come first. The concept is a full body in an A-pose, front view, plain background (what auto-rigging needs). Humanoids with clear limbs only. The quote reads fal's pricing API and the model page's add-ons (textures, rigging) and takes the higher. The raw rigged file stays in art/<asset>/raw/; the shipped character is phone-sized with its skeleton mapped to the standard and the library's CC0 clips (idle, run, jump, attack, hit, die, ...) retargeted onto it, recorded with both receipts.

Show full SKILL.md (454 more words)Show less

Check, lineup, rights

sh
npx --no-install homie-studio assets check <id>    # phone budgets, the glTF-Validator, licences, staleness, big files
npx --no-install homie-studio assets lineup <id>   # pictures in .studio/art/<id>/; look at them
npx --no-install homie-studio assets rights <id>   # games/<id>/assets/RIGHTS.md and the credits
npx --no-install homie-studio assets redo <id> <asset>   # made again from its kept raw file, free

assets redo runs only the free steps again (today's budgets and render style, from art/<slug>/raw/). A model drawn black in the game is metal with nothing to reflect: every style but pbr makes models non-metal, and a redo applies it to one made before. A palette or shape change needs a new concept and mesh (paid), not a redo.

Phone budgets (per asset): a prop 1,500 triangles and 512 px pictures, a hero 8,000 and 1,024 px, one material; the scene: about 100 draw calls, 150,000 triangles, 48 MB of picture memory, 5 MB to download before the first round. assets check holds the game to them; the perf skill is the real gate on a phone.

After the lineup, have a FRESH reviewer (the playtest skill's blind review: a new agent that never saw your reasoning) look at the style board, the golden images and the lineup pictures and score "does every model look like one game?" from 1 to 10, naming outliers; record it: assets review <id> --score <n> --outliers a,b. Under 7, or any outlier, those assets need another look.

Loading them in the game

Every model loads through @homie-rocks/studio/assets:

ts
import { createModels } from '@homie-rocks/studio/assets';
const models = createModels();
const fox = await models.instance('./models/fox.glb').catch(() => models.placeholder({ x: 0.5, y: 0.7, z: 0.8 }));

It refuses an unsafe or oversized file (an external URI, a buffer over the cap, an extension three.js cannot read) before parsing it, decodes meshopt geometry, clones skinned models properly, and warns in development when a model is over its budget. Draw each loaded model the way the decisions say, once, before copying it: stylize((await models.load(url)).scene, style) with the game's style.json (its material model and ink outline, as the style board drew them). The gem-rush-3d starter shows the whole pattern.

Licences, plainly

  • references/RIGHTS.md keeps what the providers' terms say, with read dates. Read the live pages again before anything commercial is published (registry re-reads prices; terms you read by hand).
  • A public game may contain only assets whose licence lets them sit in a public source: CC0, CC BY with credit, the studio's own, and generated ones. Anything else is remix: none (remixers get a grey placeholder) and the studio's repository must stay private while it holds the raw file. publish refuses a game with an asset that has no licence record.
  • Never fetch from Poly Pizza or ShareTextures by script, never use Quaternius, Mixamo, Synty, Fab, Unity Asset Store or TurboSquid files in a public game's repository, never use a model or dataset under non-commercial terms.

Never

  • Never spend without a budget, past it, or without a receipt; never run paid generation in a loop; never print or store a key.
  • Never ship a raw provider file, never commit one, never ship an asset with no licence record.
  • Never replace a model the person made without asking.

© hashgraph-online, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files (scripts, references) in plugins/homie-rocks/homie/skills/models of hashgraph-online/awesome-codex-plugins.

  • SKILL.md
  • agents/openai.yaml
  • references/RIGHTS.md
  • references/models.json
  • scripts/models.mjs

Open the folder on GitHubat commit 16b4156

Compare with similar skills

Models next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Models compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Models this skillhashgraph-online/awesome-codex-plugins1.2k—~3kAutomated safety check: PassApache-2.0
Image to Three.js Modelimg2threejs/img2threejs18k1 repos~8.2kAutomated safety check: PassApache-2.0
Web CloneJane-xiaoer/claude-skill-web-clone1k1 repos~2.7kAutomated safety check: PassMIT
Threejs Game Directormajidmanzarpour/threejs-game-skills2.4k—~2.2kAutomated safety check: PassMIT
Game Asset Generatorhtdt/godogen7.1k—~2.8kAutomated safety check: PassMIT
Threejs Gameplay Systemsvalkor-ai/loom1.2k1 repos~1.4kAutomated safety check: PassApache-2.0

Similar skills

  • Image to Three.js Model

    img2threejs/img2threejs

    Rebuilds the object in a reference image as a procedural, animation-ready Three.js model written entirely in code, using staged sculpting with quality checks.

    18k GitHub starsUsed in 1 repo~8.2k tokens
    Game DevelopmentAuto-check passed
  • Web Clone

    Jane-xiaoer/claude-skill-web-clone

    网站复刻 / 克隆方法论。USE WHEN 用户说 复刻网站、克隆网站、clone website、抄个站、仿站、 照着这个站做一个、reproduce site、还原某个网页效果、把这个站搬下来改成我的、 复刻某个交互/WebGL/Canvas/Three.js 效果。提供「先拿真源码 → 判路径 → 逆向拆解 → 搭工程 → 替换内容」的可移植决策树,覆盖静态站 /…

    1k GitHub starsUsed in 1 repo~2.7k tokens
    Game DevelopmentAuto-check passed
  • Threejs Game Director

    majidmanzarpour/threejs-game-skills

    Entrypoint for building, upgrading, and finishing Three.js browser games.

    2.4k GitHub stars~2.2k tokensUpdated 9 days ago
    Game DevelopmentAuto-check passed
  • Generates game art from text prompts: PNG images, GLB 3D models, rigged characters, animations and sprites, with background removal.

    7.1k GitHub stars~2.8k tokensUpdated 6 days ago
    Game DevelopmentAuto-check passed
  • Build and iterate playable Three.js game systems: starter scaffold, architecture, design briefs, core loops, level and encounter design, entities, input, camera, collision and physics, scoring…

    1.2k GitHub starsUsed in 1 repo~1.4k tokens
    Game DevelopmentAuto-check passed
  • Threejs World Generation

    calesthio/OpenMontage

    Build deterministic, editable, free-viewpoint Three.js worlds from text or structured briefs.

    65k GitHub stars~2k tokensUpdated 4 days ago
    Game DevelopmentAuto-check passed

More from hashgraph-online/awesome-codex-plugins

All 736 skills in this repo
  • Anime Reaction Gif

    hashgraph-online/awesome-codex-plugins

    Create original anime-style reaction stickers as looping GIFs and MP4 previews, using generated character pose sheets and timed key poses.

    1.2k GitHub stars~922 tokensUpdated yesterday
    Auto-check passed
  • Calibredb

    hashgraph-online/awesome-codex-plugins

    Manage and query Calibre libraries with the calibredb CLI (local paths or Calibre Content server URLs).

    1.2k GitHub stars~1k tokensUpdated yesterday
    Auto-check passed
  • Rust API Test Harness

    hashgraph-online/awesome-codex-plugins

    A skill your agent uses when adding, changing, testing, or debugging Rust HTTP APIs and services, especially when Codex needs black-box integration tests, random-port app startup, real database test…

    1.2k GitHub stars~1.7k tokensUpdated yesterday
    Auto-check passed
  • Art

    hashgraph-online/awesome-codex-plugins

    Make a studio's game look like something at build time — a cover from a real frame of the game (free), painted covers, backdrops, textures and character plates from image models through the…

    1.2k GitHub stars~2.4k tokensUpdated yesterday
    Auto-check passed
  • Calle

    hashgraph-online/awesome-codex-plugins

    Use CALL-E from Codex through the calle CLI. An agent skill from hashgraph-online/awesome-codex-plugins.

    1.2k GitHub stars~2.9k tokensUpdated yesterday
    Auto-check passed
  • Game Balance Economy

    hashgraph-online/awesome-codex-plugins

    Balance game difficulty, resources, rewards, probability, progression, economies, and dominant strategies.

    1.2k GitHub stars~618 tokensUpdated yesterday
    Auto-check passed

Questions about Models

What does Models do?

Give a game real 3D models that fit together and run on a phone — free CC0 models from Homie's starter library (Kenney, KayKit, Poly Haven, ambientCG) copied in with their licence, the person's own…. Models is an agent skill from hashgraph-online/awesome-codex-plugins.

When should I use Models?

Models fits situations like: someone wants 3D models; free assets for a game; asks where a model came from; whether it may be used.

How do I install Models in Claude Code?

Run `npx skills add hashgraph-online/awesome-codex-plugins --skill models -a claude-code`. Or copy the skill folder (plugins/homie-rocks/homie/skills/models in hashgraph-online/awesome-codex-plugins) into .claude/skills/models in your project. Claude Code loads it when a task matches its description.

How do I install Models in Codex?

Run `npx skills add hashgraph-online/awesome-codex-plugins --skill models -a codex`. Or copy the skill folder (plugins/homie-rocks/homie/skills/models in hashgraph-online/awesome-codex-plugins) into .agents/skills/models in your project. Codex loads it when a task matches its description.

Can I use Models in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hashgraph-online/awesome-codex-plugins --skill models -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/models, .gemini/skills/models, .github/skills/models and .opencode/skills/models in your project.

What does Models need to run?

Going by SKILL.md and its folder, Models needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node and npx). Our summary lists: Node.js; A credential in FAL_KEY. Compatibility (from SKILL.md): Node 22. Generated props use Tripo's models, and generated characters Meshy's, on the creator's own fal account (FAL_KEY); fal's own MCP server (https://mcp.fal.ai/mcp-relay) reads schemas and prices..

Does Models access the network?

SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Models safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Models use?

Models is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Models use?

About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.2k tokens, read only when the agent opens those files.

What are the alternatives to Models?

Skills that share tags, products or a category with Models: Image to Three.js Model (img2threejs/img2threejs, 18k stars), Web Clone (Jane-xiaoer/claude-skill-web-clone, 1k stars), Threejs Game Director (majidmanzarpour/threejs-game-skills, 2.4k stars) and Game Asset Generator (htdt/godogen, 7.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Models?

hashgraph-online (a GitHub organization) maintains it in hashgraph-online/awesome-codex-plugins, which has 1,232 GitHub stars. The repository holds 736 skills in this directory. The repository was last updated on October 6, 2026.

Source: hashgraph-online/awesome-codex-plugins on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.