How the forged cast's eyes are being fixed: a single measured pass that snaps,
recesses, retextures and lids every eyeball. Part of the golden-body (Path B) effort.
Status — SHIPPED cast-wide (all 323 models), verified on the live deployment.
Four distinct bugs were each measured and fixed: (1) ball-center — the eye BONE sat behind MakeHuman's
true eye joint → correct to the joint; (2) oversized eyeballs (R/IPD 0.279) → native size (0.243×IPD);
(3) bug-eyed flat faces — a fixed bone offset couldn't fit varying forge face depths → per-character
eyelid-surface recession (the eyeball's front pole sits just behind each character's own lid);
(4) stale glbs → ?v= cache-bust. Per-character/species iris colors are live (humans
realistic, aliens by species). The dark blotches around the eyes are the forged skin
texture — a separate issue (baked lighting + green-collar bleed), the next fidelity pass.
The problems
The forged characters ride a shared 163-bone golden body; the eyeballs are recovered as a
separate mesh weighted to the eye.L/eye.R bones. Several defects stacked up:
Bulging out of the socket
The eyeball sat proud of the face plane — a glossy ball stuck to the surface.
Floating above the crown
Size-reforged files carried the eyeball detached at z≈1.05, above the head top at 1.01 — it post-dated the earlier fix, so it was never re-snapped.
Dark hollow "alien" sockets
Black lash geometry smeared around a dark ball, reading as a hole rather than an eye.
No whites, no lids
No visible sclera or eyelids — a dark iris filled the whole opening.
aegis_7 — before/after, front & profile. After: eyes in the socket, recessed (no bulge), lidded, catchlight.
The fix — one self-contained pass
Every step is measured against the mesh, not eyeballed. Tool: art-gen/eye_refine.py.
Snap — re-home each eyeball centroid onto its own eye.L/eye.R bone (fixes floating/forehead eyes on any re-forged file).
Size — MakeHuman-native. Measured from base.obj: the eyeball is a perfect sphere sized to a fixed ratio of the interpupillary distance (radius = 0.243 × IPD), centred on the joint-l/r-eye marker. We scale the eyeball to that exact ratio rather than an arbitrary shrink.
Set back into the socket. Sink the eyeball a fraction of its radius into the head so it sits behind the lid plane — not the earlier "recess" that measured the brow ridge and shoved the eyeball forward until it protruded in profile.
Retexture — mostly white. Small colored iris ring (so the sclera dominates the narrow lid opening), dark pupil, crisp limbal ring, near-white sclera, tight catchlight. The sclera is emissive so it reads white even recessed in socket shadow.
Delash — remove the near-black lash geometry that smeared as "alien eyelids".
Eyelids — MakeHuman's own. The base mesh already carries anatomical eyelids (and riggable upperlid/lowerlid joints for future blinking). Rather than reinvent them with a procedural drape (which read odd and bumped out in profile), the eyeball is sized and recessed to sit correctly behind the base's real lids.
The eyeball alone: white sclera, saturated iris, dark pupil, catchlight — the look the lid must frame, not cover.
Result — white sclera + colored iris + human lid
Recipe v2 close-up: brown and blue irises, visible white sclera, catchlight, subtle upper lid; profile stays recessed (no bulge).
Generalization
The same pass, unchanged, across skin tones — the skin-sampled lid and emissive sclera hold up
on a pale android and on dark skin (where the whites read especially clean).
Pale android (blue), dark skin (brown), and a less-hooded variant (more white showing).