We said eyes first, mouth second. What we didn’t say was that “first” meant a full texture atlas, two mechanical eye variants sculpted from concepts, and a collection tree that grew from maybe a dozen entries to 257 traits across 11 categories. The sauce is thick now. 🫙

The Texture Atlas: From Pain to Paint.NET

Devlog0 ended with UV alignment done and a Gemini concept for two heroic 3D eye traits. Between then and now, the real work happened in Paint.NET — where every single eye variant got its own layer, its own home, its own identity.

The atlas format: open eyes on the left, closed/blink state on the right. It’s a sprite sheet layout where the UV can slide between states for animation — no bone rigging needed, just a shader-driven UV offset. Perfect for a generative collection where every trait needs to blink without bespoke animation per variant.

Paint.NET layer stack showing eye variants

The layer panel reads like a color-coded conspiracy: MILADYGREEN, FIREDEVIL, SCHIZORED, CONTROL. If the FBI ever seizes my hard drive, this is the file that gets me committed.

What’s happening in this screenshot:

  • Software: Paint.NET v5.0.13 — yes, the 2004-era image editor that still slaps harder than most subscription tools
  • Canvas: Transparent background (checkerboard) with two columns of stylized anime eyes
  • Left side: Open eye state with full iris/pupil detail and square sparkle highlights
  • Right side: Closed eye state — simple black lines representing eyelids/blink
  • Layers panel: Organized by color variant — MILADYGREEN, FIREDEVIL, SCHIZORED, and a CONTROL layer for reference
  • History: Recent actions include “Eraser” and “Layer Visibility” toggles
  • Current state: Most variant layers are hidden; only CONTROL and base eye shapes are visible

This is the source of truth for every eye texture in the collection. One file, mastered once, exported per variant.

The Blender Viewport: Eyes Meet Geometry

While Paint.NET handled the 2D truth, Blender became the integration lab. The base eye mesh — radial topology, 92 verts, symmetrical — accepted textures cleanly after the UV fix from devlog0. Front orthographic view, edit mode, everything lined up.

Blender front orthographic with eye edit mode

The radial edge loops around each pupil are doing the lord’s work. When your eye deforms, those concentric rings keep the iris round. Topology nerds understand.

What’s happening in this screenshot:

  • Viewport mode: Solid shading with wireframe overlay, front orthographic projection
  • Object: EYES.006 selected in edit mode (orange highlight on active edge loops)
  • Topology: Concentric radial loops around pupil, quads throughout — 82 faces, 150 tris total
  • Texture: Stylized anime eyes with brown irises and four-point sparkle highlights visible on mesh
  • Stats overlay: 92 vertices, 82 faces, 150 triangles for the selected mesh
  • Scene: 2 objects total, character body visible in dark purple/brown wireframe

The eye geometry is locked. Any future variant — flat texture or full 3D mechanical — fits this base. Consistency is currency in generative collections.

The Collection Tree: Explosion of Traits

And then there was the outliner. The moment we realized this wasn’t just “a few eye variants” anymore.

Blender outliner showing expanded eye collection

That collection tree started modest. It did not stay modest.

What’s happening in this screenshot:

  • Viewport: Full wireframe reveal (pink lines for base body, cyan for mechanical attachments)
  • Outliner (right): Collections organized by body part — EYEBROWs, EYE, MOUTH, EYEWEAR
  • EYE folder expanded: 26 named variants listed
    • BloodShot#25, Confusion#20, Crying#20, DeadSplash#20, Dead#20
    • Ekubo Bionic Eyes#15, FireDevil#20, FourSpots#20, Green Pilled#20, Hazelnut#20
    • Kano’s Bionic Eyes#15, Milady Blue#20, Milady Green#20, Milady Schizo Tattoo#20
    • Purple Urkle#20, Remilio Light Green#20, Reptilian Red#20
    • Schizo Green#20, Schizo Light Blue#20, Schizo OG White#20, Schizo Purple#20
    • Schizo Red#20, Schizo Tattoo Eyes#20, Schizo Yellow#20, Stoned Red#20, Whirlpool#20
  • Active selection: FireDevil#20 highlighted in blue — current focus
  • Other folders: EYEBROWs, MOUTH, EYEWEAR visible but collapsed
  • Scale reference: Pop Cat meme floating by character’s nose (artist humor)

26 eye variants. And that’s ONE category of ELEVEN.

Full collection breakdown as of today:

Category Traits
Accessories 8
Body 10
Clothing 74
Eyebrows 13
Eyes 26
Eyewear 7
Hair 32
Headwear 45
Mask 3
Mouth 15
Weapons 24
Total 257

257 traits. 10,000 supply. The math is getting real.

The Mechanical Eyes: Shaped, Not Just Generated

Devlog0 introduced the AI-augmented pipeline: concept → Gemini → Hunyuan3D → retopo → Blender. The update: the generated meshes have been shaped.

“Shaped” means topology cleanup, edge loop rationalization, and manual vertex nudging until the concept actually reads as facial armor. Generated meshes give you volume. Human hands give you intent. The difference between “AI slop” and “AI-assisted” is right there in the wireframe.

The FireDevil variant (currently selected in the outliner) is the focus — its generated mesh got the most love. The Ekubo and Kano bionic eyes from devlog0 are queued for the same treatment.

The “FINALE” Naming Convention

Every texture file exported from Paint.NET carries a #weight suffix. Rarity is encoded in the filename itself. FireDevil#20 = 20/1000 chance. Ekubo Bionic Eyes#15 = 15/1000. Schizo Panda#2 = pray to RNGesus.

And then there’s the FINALE joke. You know the rule: if you name a file FINAL, there will be a FINAL_v2. Then FINAL_v2_ACTUALLYFINAL. By FINAL_v7_THIS_ONE_FOR_REAL_THIS_TIME, you’ve forgotten which one is current and just started numbering by frustration.

The naming convention that actually works? Datestamp everything. eyeatlas_20260523_0347.webp tells a story. FINAL tells a lie.

What’s Next: Mouth

We’ve been saying it since devlog0: eyes → mouth → everything else. Eyes are now officially done — textured, atlased, populated in the collection tree, with mechanical variants entering the shaping pipeline.

Mouth is next. Another low-hanging fruit that isn’t actually that low when you consider expression variants, sync-to-speech potential, and the need for every mouth shape to work across all head tilts.

42 days to deadline. But who’s counting.


Days until June 30 deadline: 38 | 90min sessions banked today: 1 | status: SAUCE is stirring 🫙