Skip to content

[feat] 57-chars M5: characters-kit + motion-kit (CC0) and a per-file licence lint - #18

Merged
AlexZ005 merged 2 commits into
mainfrom
feat/57-chars
Oct 30, 2026
Merged

AlexZ005 merged 2 commits into
mainfrom
feat/57-chars

Conversation

@AlexZ005

Copy link
Copy Markdown
Contributor

Core roadmap 57 M5, lane 57-chars: the CC0 character and motion packs, plus a per-file licence lint in the packs CI.

characters-kit (new category character)

  • 8 VRM avatars from 100Avatars R1/R2 by Polygonal Mind (CC0 1.0): Astronaut, ChillPenguin, CoolPirate, Erika, Kate, Olivia, Skelly, Witch. Each ships as published. Its own VRM meta is its licence statement and says CC0. R3 is left out because its files point at an extra licence URL beside "CC0".
  • Quaternius UAL mannequins (CC0 1.0, free Standard tiers): the female one from UAL 2 as it ships, and the male one from UAL 1 with its clips stripped out (they ship once, in motion-kit).
  • tools/characters-kit/build.mjs + sources.json: every source is pinned by sha256. default.json, licences.json (one record per shipped file), attribution.html and thumbnails are included.
  • Policy: emissive allowed and textureCap 2048 for this category; rules.mjs accepts .vrm.

motion-kit

  • 87 humanoid .tpanim clips (UAL 1: 45, UAL 2: 42; A_TPose skipped; 13.2 MiB). Each is a skeleton-only glTF holding one animation, with VRMC_vrm_animation humanoid bones and extras.theprototype (format 1, fps, frames, loop, rootMotion, provenance).
  • Listed in a NEW root clips-index.json. index.json is untouched, so released apps (CDN pinned @format-1) don't see the clips.
  • tools/motion-kit/build.mjs (--core <checkout> reads core's humanoid detector; otherwise it uses the committed rigs.json).

Licence lint (tools/licence-lint/lint.mjs + 4 node tests, a step in pack-checks.yml)

  • Every shipped file in every pack needs a CC0 licence record. A VRM must also say CC0 in its own meta.

Checks: kit-build check reports 0 errors and the licence-lint tests pass. A generated walk clip retargets onto the KayKit knight with core's retarget.

The jsDelivr purge after merge belongs to 57-int.

🤖 Generated with Claude Code

…ile licence lint

- characters-kit: 8 VRM avatars from 100Avatars R1/R2 (Polygonal Mind, CC0, via the Open Source
  Avatars registry; R3 left out: an extra licence URL beside CC0) shipped as authored, + the two
  Quaternius UAL mannequins (CC0; the male one's 46 clips taken out). tools/characters-kit pins every
  source by sha256; kit-build dims/thumbs/check clean (new 'character' category, lods allow-listed
  like the avatars: skinned)
- motion-kit: 87 humanoid .tpanim clips from Quaternius UAL 1 + 2 Standard (CC0): a skeleton + one
  animation each, VRMC_vrm_animation humanBones (the rigs' maps from core's detector, rigs.json) and
  extras.theprototype {format 1, kind clip, skeleton, fps, frames, loop, rootMotion, provenance};
  listed in a NEW clips-index.json so apps reading index.json (format-1) are untouched
- tools/licence-lint: every file of a pack with licences.json needs a CC0 record (+ sha256), a .vrm
  must state CC0 in its own meta (0.x licenseName / 1.0 full grant), a .tpanim's provenance must agree;
  4 node tests; a CI step
- kit-build rules: a row's glTF-Binary may be a .vrm

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…n the hips only); three-vrm refused every clip

Rebuilt 87 clips: 14 MB -> 6.2 MB.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@AlexZ005
AlexZ005 merged commit bd968e7 into main Oct 30, 2026
1 check passed
@AlexZ005
AlexZ005 deleted the feat/57-chars branch October 30, 2026 15:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant