Spaces:
Running
Running
| # Changelog | |
| All notable changes to **img2threejs** are documented here. | |
| The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), | |
| and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). | |
| ## [1.3.0] β 2026-07-22 | |
| The "quality & efficiency" line: a deterministic-first review harness (Divine Eye), stronger | |
| input integrity, geometry-truth gates, and reference-grounded texture/material analysis. | |
| ### Added β Plan 1.3 (Phases 1β7) | |
| - **Input integrity** β reference admission (`check_reference_admission.py`), intake-correctness | |
| cross-check (`check_intake_correctness.py`), property auto-binding, shared pHash. | |
| - **Geometry truth** β curve-sweep (F.6), flatness gate (G.1), Blum lathe-profile derivation. | |
| - **Divine Eye** β deterministic multi-signal ensemble (`divine_eye.py`): IoU/scale hard gates; | |
| proportion / symmetry-parity / pHash / SSIM / edge / blowout / flat / tonal-parity soft signals; | |
| self-uncertainty `probe` routing. | |
| - **Multi-angle** β degenerate-view detection (`diagnose_render_multi_angle.py`) with reference-free | |
| self-consistency; auto-framing. | |
| - **Eye judgment layers** β gated VLM gate (`vlm_gate.py`), per-feature verification (Β§3.8), | |
| bounded stop policy (Β§3.6), calibration harness (report-only + separation check). | |
| - **Efficiency** β per-module codegen cache (Β§3.7 neighbor invalidation). | |
| - **Presentation** β reference-conditional post-fx (DOF/bloom) strictly off the evaluation path. | |
| ### Added β session capability work (folded into 1.3) | |
| - **Texture-finish analysis** β `stage1_intake/analyze_texture.py`: classifies finish | |
| (gem-metal / gemstone / painted-metal / worn-composite / brushed-steel / plastic) and writes | |
| doc-grounded MeshPhysicalMaterial scalars; `grimoire/build/threejs_texture_reference.md`. | |
| - **Objectness (OSIM-lite)** β `stage4_review/objectness.py`: pure-stdlib HOG-like descriptor + | |
| cosine similarity; wired into Divine Eye as a soft signal + reconstruction-mode rescue. | |
| - **`ground-blade` primitive** β lofted beveled cross-section (primary bevel + swedge/false edge) | |
| in the generator + validator whitelist. | |
| - **Color-gate fix** β `diagnose_render.py` `color_is_gated(pass_id)` (color hard-fail only from | |
| the material pass onward, so clay blockouts don't false-fail). | |
| ### Added β reconstruction-fidelity upgrades (folded into 1.3) | |
| - **Reference-grounded gradient stops** β `stage1_intake/extract_gradient_stops.py`: foreground-masked | |
| per-band median sampling extracts a material's true gradient from the reference (kills hand-guessed | |
| STOPS), names hue zones, and flags blue-leaning violet/blue stops (`B > R`) as `blue-collapse` | |
| (collapses to blue under tone-mapping) with a magenta-lean suggested correction. | |
| - **`candy-coat` finish class** β `stage1_intake/analyze_texture.py`: an anodized/PVD/doppler | |
| dielectric-led recipe (metalness 0.35 / clearcoat 0.60 / envMapIntensity 0.70) so a saturated | |
| coloured coat keeps its hue instead of the environment stealing it; chrome-specular stays | |
| `gem-metal`, bright-clean stays `gemstone`. Plus a `paletteHueRisk` hue-survival annotation. | |
| - **CIEDE2000 colour math** β `_shared/color_metrics.py`: sRGBβCIELAB + full ΞE00, verified against | |
| the canonical Sharma test pairs. | |
| - **Colour-aware Divine Eye signals (report-only)** β `hue_zone_parity` (per-band CIEDE2000 along the | |
| axis; catches "purple rendered blue" that luma/structure signals miss) and `specular_wash` | |
| (saturation-decay + hue-drift-toward-cyan detector). Both ship report-only (no ensemble weight) | |
| until calibrated, so they never silently move a verdict. | |
| - **InstancedMesh emission** β repetition systems now emit one `THREE.InstancedMesh` (single | |
| draw-call) instead of a per-instance `Mesh` clone loop; the `instanced-cluster` primitive resolves | |
| to its base geometry instead of failing. | |
| - **`ground-blade` UV fix** β blade UVs now span the geometry's actual Y bounds instead of a | |
| hardcoded range, so an off-origin blade no longer clamps every face to the bright spine-rim row | |
| (the flat "one colour" / white-tip bug); the length gradient reads correctly. | |
| - **Dep-free cutouts** β `extrude` supports `THREE.Shape.holes` + an `ovalLoop` helper (e.g. a | |
| wire-cutter oval hole) with no CSG dependency. | |
| ### Notes | |
| - Pure Python 3.10+ stdlib in `forge/` (no pip installs). 20/20 forge test suites green. | |
| - Grimoire lessons updated: shading realism (hue-survival under tone-mapping; reference beats prose), | |
| geometry patterns, self-correction. | |
| ## [1.2.0] - 2026-07-21 | |
| **Theme: Humanoid character generator.** Characters and hybrid subjects become | |
| first-class citizens of the reconstruction pipeline, alongside a round of engine | |
| and harness improvements to the underlying code generator. | |
| ### Added | |
| - **Character / hybrid domain detection.** Assessment now recognizes character-like | |
| form language and routes the reconstruction through an anatomy-aware track instead | |
| of the hard-surface object path. | |
| - **Humanoid component template.** A flattened humanoid template with measured | |
| head-unit proportions, facial landmark placement, and pose alignment is emitted | |
| from the assessment stage. | |
| - **Proportion-lock build pass.** New gated pass that enforces anatomical proportion | |
| correctness before form/material work proceeds. | |
| - **Feature-placement build pass.** New gated pass that places and validates facial | |
| and body landmarks against the reference. | |
| - **Per-part character materials.** Skin, hair, cloth, and accessory materials | |
| integrate with the Track A detail machinery for stylized human figures with | |
| recognizable likeness. | |
| - **Surface topology classification.** Parts are classified by surface topology to | |
| drive more accurate geometry choices. | |
| - **Per-part color / RGBA recipes.** Explicit per-part color and RGBA material | |
| recipes for tighter reference matching. | |
| - **Tier-1 diagnostics.** Diagnostic reporting layer for the generation harness. | |
| - **Hash caching.** Content-hash caching to avoid redundant recompute across passes. | |
| - **Real extrude / lathe / tube geometry.** Genuine extrude, lathe, and tube geometry | |
| generation replaces prior approximations. | |
| ### Changed | |
| - Restructured the project layout ahead of the full harness rebuild, including | |
| stage-prefixed script names for clearer pipeline ordering. | |
| ### Docs | |
| - Published a public ROADMAP (v1.0 β v1.5) and a token-cost document. | |
| - README remake: 3D showcase, live-demo links, new logo, and animated GIF previews | |
| (shotgun, knife, war-hauler, Sony, Doraemon House, Crowned Loot Chest). | |
| - Added LICENSE, CONTRIBUTING, and a community-outreach promotion playbook. | |
| - Funding pointed to the VN donate page (MoMo / VietQR). | |
| ## [1.1.0] - 2026-07-15 | |
| **Theme: Detail-first analysis.** | |
| ### Added | |
| - Required `detailInventory` artifact enumerating identity-defining micro-details | |
| (gloss zones, bevels, fasteners, engraved/painted linework, contours, stains, wear). | |
| - Strict-quality gate that blocks code generation until every detail maps to a real | |
| component or material entry, preventing shallow specs from reaching the renderer. | |
| ## [1.0.0] - 2026-07-15 | |
| **Theme: Object pipeline.** Initial release. | |
| ### Added | |
| - Staged sculpt pipeline: blockout β structure β form β material β lighting β | |
| interaction β optimization, with a visual gate on each pass. | |
| - Image suitability validation and `ObjectSculptSpec` authoring (components + materials). | |
| - Render-vs-reference review loop using side-by-side comparison sheets. | |
| - Action-ready runtime hierarchy exposing pivots, sockets, and colliders. | |
| - Token-efficient, code-only output (diffable TypeScript + JSON spec, no binaries). | |
| [1.2.0]: https://github.com/hoainho/img2threejs/releases/tag/v1.2.0 | |
| [1.1.0]: https://github.com/hoainho/img2threejs/releases/tag/v1.1.0 | |
| [1.0.0]: https://github.com/hoainho/img2threejs/releases/tag/v1.0.0 | |