Skip to content

build(docs): draw illustrations with minecraft style blocks - #56

Merged
TheMeinerLP merged 4 commits into
mainfrom
build/minecraft-style-illustrations
Oct 10, 2026
Merged

TheMeinerLP merged 4 commits into
mainfrom
build/minecraft-style-illustrations

Conversation

@TheMeinerLP

Copy link
Copy Markdown
Collaborator

Summary

The generated brush and menu pictures no longer look like fantasy blocks. The 2D layout is unchanged (top view, side cross-section, legend; the 54-slot grid).

  • Colours: every block is drawn in a representative colour of its Minecraft material (grass block, dirt, stone, andesite, cobblestone, gold block, sponge). Each test fixture is mapped to its real material name, so the legend says "Grass Block", "Gold Block" and so on.
  • Pixel look without assets: each block face is an 8x8 tile that the generator computes from the material name with a fixed seed (shades of the base colour; cobblestone has mortar lines, gold a rim). No Minecraft or third-party texture file is read, copied, embedded or downloaded. docs/development/documentation.md says so.
  • Unchanged blocks keep their material and are faded; changed blocks are full colour with a thin highlight border; air is the sky tint #dbeafe; the clicked block is outlined.
  • Scenes stand on grass over dirt over stone. The sphere and the gradient mix stone, andesite and cobblestone. The paint scene has six control points, numbered 1 to 6 in click order and joined by a line, with a thin brush so the stroke reads as a path.
  • Menu: drawn as a 6x9 chest container (grey panel, bevelled slots). Glass panes are tinted translucent tiles, block items are block tiles, other items are 8x8 pixel icons written in code. Numbered callouts sit on functional slots only; a legend beside the chest gives number, slot and English label.
  • OpenSpec: change minecraft-style-illustrations, delta on docs-illustrations (material colours, computed tiles, legend names, unchanged blocks, paint control points, chest menu with callouts). openspec validate --strict passes.

Verification

  • Red first: the new tests in src/docsGenTest failed to compile against the missing SVG model and tile API. Then implemented to green: ./gradlew docsGenTest 64 passed, 0 failed.
  • ./gradlew generateDocsImages run twice: the outputs are byte-identical.
  • All 14 SVGs were rasterised at 800 px and reviewed by eye.
  • ./gradlew spotlessApply and ./gradlew check pass (checkDocsImages, checkDocsLinks, docsGenTest and the main tests).
  • The generator sources have no clock reads and no texture file references.

Please look at

  • Paint stroke stops before the last clicked point. In paint-brush.svg the gold blocks end at about point 5, with nothing on the last segment to point 6. The generator runs the real PaintBrush.apply, so the picture shows what the brush paints. In PaintBrush.sampleOffsets the sampled spline parameter runs up to points.size() - 1, which looks one segment short. I did not change brush code here, since brush behaviour is out of scope. It needs its own look, probably a separate change.
  • The numbered polyline is the click order, not the exact Bezier curve. The gold blocks are the real stroke.

Not merged and not archived.

https://claude.ai/code/session_01JavEedb4MyR9NehY3HusTn

Proposal, design and delta spec for drawing the generated illustrations
with Minecraft material colours, computed block tiles, a named legend,
paint control points and a chest-style brush menu.

Claude-Session: https://claude.ai/code/session_01JavEedb4MyR9NehY3HusTn
Blocks are drawn with the representative colour of their Minecraft
material and an 8x8 pixel tile computed from the material name with a
fixed seed. No Minecraft or third-party texture file is read or
embedded. Unchanged blocks are faded, changed blocks are full colour
with a highlight border, air is the sky tint, and the legend names
each material (Grass Block, Gold Block, ...). The scenes stand on
grass over dirt over stone; the paint scene numbers its six control
points. The menu is drawn as a 6x9 chest container with glass panes,
block tiles, pixel icons and numbered callouts on functional slots.

Claude-Session: https://claude.ai/code/session_01JavEedb4MyR9NehY3HusTn
Explain the material colours and the computed pixel tiles of the
illustrations, the rule against Minecraft and third-party texture
files, how to add a material or a menu icon, and how to read the
brush and menu pictures.

Claude-Session: https://claude.ai/code/session_01JavEedb4MyR9NehY3HusTn
@TheMeinerLP
TheMeinerLP requested a review from a team as a code owner October 10, 2026 16:36
@github-actions

Copy link
Copy Markdown

Unit Test Results

 43 files   43 suites   8s ⏱️
200 tests 200 ✅ 0 💤 0 ❌
201 runs  201 ✅ 0 💤 0 ❌

Results for commit 471d601.

@TheMeinerLP
TheMeinerLP merged commit 2de6190 into main Oct 10, 2026
14 checks passed
@TheMeinerLP
TheMeinerLP deleted the build/minecraft-style-illustrations branch October 10, 2026 16:38
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