Dog model journey

Dog model: what we tried and where we are

Updated 8 Nov 2026. The goal is a game-ready dog with the right shape that moves right, built by a repeatable script from four reference pictures and the artist's skeleton, then the same method on an elephant and a turtle.

Newer: a rough dog from four pictures, overnight result (8 Nov). This page is the record up to 7 Nov.

Your plan, and how far each step has got

1. Skeleton treeassumedFor this test we use the artist's own skeleton, so step 1 is taken as given.
2. Fit the shape on the skeletonnot solvedAll the work since 6 Nov. Best numbers so far pass 3 of 4 shape lines, but the method behind them was wrong (below).
3. MotionworksProved early: with Blender's automatic weights our dog bends like the real one (22 bends, v59 round 1).

Where we are now

  • Current method (v61): build the dog the way artists build a low-poly game animal (box modelling: extrude loops from a cube, place each corner on the reference outlines), written as a script. Only the body, neck and head exist so far; the body reads like an artist's blockout, the chest and head do not yet.
  • The blocker: knowing where each part is in the reference pictures (where the chest ends and the neck begins, where legs meet the belly, where the muzzle starts). An artist sees this; our attempts to work it out from outlines alone keep getting it wrong.
  • Decision needed from you: how to supply those part outlines (choices at the bottom).

What each version looked like (same three-quarter angle)

Real model first. The three-quarter picture is never used for building, only for checking. v61 pictures are partial models and use a wider camera.

Real dog, three-quarter view

Real model

The artist's low-poly dog (faceted, a few thousand triangles). This is the target.

v58

v58 shape fails

Did: one oval or tube per bone, blended into one skin. Result: lumpy, no muzzle, flat ear discs. Motion already worked.

v59 round 1

v59 round 1 closer

Did: one smooth tube per chain of bones. Result: muzzle appears, clean mesh, motion passes; still creased, no tail, numbers below the line.

v59 round 2

v59 round 2 worse

Did: chains chosen by left/right symmetry. Result: a row of beads, too wide; a fault in how the tube was computed.

v60 step 1b

v60 1b clean, blocky

Did: one skin built directly on the skeleton (your "skin on" idea). Result: closed and symmetric, but a blunt head and crossings where the head meets the neck.

v60 step 1c

v60 1c folds

Did: head and parts at their own angles. Result: better outline, but folded joins at neck, shoulders and rump. Steps 1d-1f (a published mesher, a computed skeleton) also failed at the joins.

v60 step 1g

v60 1g clean, ridged

Did: gave up the continuous skin: separate measured parts merged, then rebuilt. Result: first clean mesh with good numbers, but ridges and clefts at the joins. You rightly said this broke continuity.

v60 step 2a

v60 2a numbers up, look down

Did: corrected the sizes and let a fitter push the outline match up. Result: passes 3 of 4 shape lines, yet looks like stacked slabs with a blade under the jaw. You rightly said this was chasing numbers with a method nobody uses.

v61 step 1

v61 step 1 right method

Did: box modelling the artist's way (body, neck, head only; 156 triangles, faceted). Result: the body reads like an artist's blockout; throat and muzzle merge into a slab.

v61 step 1d

v61 1d (latest) parts wrong

Did: neck from the upper chest, muzzle from the lower head, boxes sized by part areas. Result: the structure is right, the proportions are not, because the part areas were wrong.

The numbers (the pass line checks; it no longer steers)

Pass line, fixed before any result: outline match with the four reference views, mean at least 0.90 and worst view at least 0.85; held-back three-quarter view at least 0.85; 90% of our surface within 2.0 cm of the real one. Green passes, orange fails. v61 is a partial model (no legs yet), so it is not in this table.

VersionFour-view meanWorst viewThree-quarterSurface (90%)MeshMotion
v58: one shape per bone0.7980.7750.7694.07 cm186 crossing facesbends pass
v59 round 1: one smooth tube per chain0.8780.8400.8392.56 cmcleanpass
v59 round 2: chains by left/right symmetry0.8180.8000.8423.83 cmnot built-
v60 1b: our own skin on the skeleton0.8420.8050.8192.84 cm154 crossing faces-
v60 1c: parts at angles0.863-0.8623.43 cm918 crossing faces-
v60 1g: measured parts merged, then rebuilt0.8850.8680.8622.51 cmclean-
v60 2a: unbiased sizes + small fit0.9300.9200.8882.49 cm2 holes-

Motion: proved early

Walk cycle: real model, v59 round 1, v58
Walk cycle, same motion on each: real model (top), v59 round 1, v58. The legs and neck follow the real model; the faults are in the shape, not the motion.

What I got wrong, and what changed

Parts found from the side outline
Parts worked out from the side outline alone (corners of the outline). It finds the throat, the stop between forehead and muzzle, the armpit and the groin, but merges near and far legs and mixes chest with neck: an outline alone does not contain that information.

Decision needed: where the part outlines come from

A. An AI image model paints the part maps and marks the points on our four reference viewsI snap them to the outlines and check that the views agree, then build the boxes from them. Needs your OK for an image-model call (Gemini or OpenAI), a few cents per view. Recommended: it is the input our own skill defines, and it carries to the elephant and turtle without your time.
B. You mark them on a page I buildAbout 10 points on each of the 4 views, roughly 10 minutes per animal. Most accurate, but costs your time for every animal.
C. I keep deriving them from the outlinesCombining the corner cuts across views. I doubt it will work: the information is not in the outlines.