Rebuild the character from lofted geometry - #8
Merged
Conversation
The character was stacked axis-aligned cubes and read as a Minecraft figure. No amount of texturing fixes a silhouette made of blocks. It is now lofted: `_lib.loft`/`limb`/`ring` bridge cross-sections whose radius changes along their length, so the torso has a waist and limbs taper, with hard-surface gear layered on top and subdivision applied only to the body — a smoothed plate carrier looks inflated rather than rigid. The art direction is doing real work. A helmeted, visored operative in heavy gear is almost entirely hard surface, which is what a script is good at; faces, skin and bare hands are what procedural generation cannot do well, and this design shows none of them. That is a deliberate choice rather than a dodge. Gear: helmet with brow, visor, side rails, NVG mount and ear cups; plate carrier with shoulder yoke and cummerbund; magazine pouches, radio, admin pouch; pauldrons; belt, holster, dump pouch; knee pads, gloves, boots; backpack. 6.3k triangles. Two iterations went into proportion. Pauldrons lofted with straight sides and capped ends rendered as blobs floating beside the body, so they now taper at both ends and blend into the arm; the first tapered version was 19x25 cm and swallowed the arms entirely, so they are 13x18 cm. preview.py gains --front. Props are authored facing +Y and the camera was placed to suit them, so a character — which faces -Y — was being reviewed from behind. Also stops tracking __pycache__, which an earlier `git add -A` swept in. Still outstanding and the bigger gap: there is no animation system, so the character does not move. A rig and animation cycles are the next step. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
vu1nz Security Review0 finding(s) in PR #? No security issues found. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The character was stacked axis-aligned cubes and read as a Minecraft figure. No amount of texturing fixes a silhouette made of blocks.
It is now lofted —
_lib.loft/limb/ringbridge cross-sections whose radius changes along their length, so the torso has a waist and limbs taper. Hard-surface gear is layered on top, with subdivision applied only to the body (a smoothed plate carrier looks inflated rather than rigid).The art direction does real work here: a helmeted, visored operative in heavy gear is almost entirely hard surface, which is what a script is good at. Faces, skin and bare hands are what procedural generation genuinely can't do well — and this design shows none of them. Deliberate, not a dodge.
Gear: helmet with brow, visor, side rails, NVG mount, ear cups; plate carrier with shoulder yoke and cummerbund; magazine pouches, radio, admin pouch; pauldrons; belt, holster, dump pouch; knee pads, gloves, boots; backpack. 6.3k triangles.
Two iterations on proportion, both caught by rendering it:
preview.pygains--front. Props are authored facing +Y and the camera suited them, so a character (facing −Y) was being reviewed from behind.Also stops tracking
__pycache__, which an earliergit add -Aswept in.Still outstanding, and the bigger gap: there is no animation system, so the character doesn't move. A rig and animation cycles are the next step — that matters more for "feels alive" than any further mesh work.
201 tests pass. Format, lint clean.
🤖 Generated with Claude Code