C.W.K.
Stream
Lesson 05 of 05 · published

The Object Box: Honest About the Unknown

~13 min · object-box, orthographic, no-claimed-orientation, honesty

Level 0Blank Page
0 XP0/35 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"For a face, the engine computes the answer. For a random bottle, it refuses to — and that refusal is the most principled feature it has."

No Canonical Model, No Claimed Orientation

Portrait, pose, and hand each rest on a canonical model — a known reference shape the geometry can solve against. A generic object — a bottle, a book, a car, a coffee cup — has no such model. There is no universal 'canonical bottle' whose landmarks you can match. And without a model, there is nothing to honestly recover an orientation from. So the object track does the disciplined thing: it claims no 3-D orientation at all. It will not infer a turn it cannot justify.

Detector-Seeds, Human-Steers

What the engine can honestly do is help. A 2-D detection seeds a box — a reasonable starting guess for where the object sits and how big it is — and from there the human fully controls the box's 3-D orientation by hand. The engine provides the scaffold and the manipulation tools; the artist provides the spatial judgment the data can't supply. It's the same human-in-the-loop philosophy as the focal and pose overrides, taken to its logical end: when the geometry has nothing to solve, the human owns the orientation entirely, and the engine is honest about handing it over.

Orthographic at Rest

The default representation is orthographic — parallel edges, no convergence, no invented vanishing points. This is deliberate, and it's the honest choice: an orthographic box asserts nothing about the camera or the perspective. It's the least-committal thing the engine can draw, which is exactly right when it has no basis to commit. Only when a human opts in by setting a focal length does the box switch to true converging perspective, complete with vanishing-point guides. Perspective is a claim about the camera, so the engine makes you author that claim rather than fabricating one.

The Discipline of Not Faking It

Step back and this feature carries the whole engine's ethic in miniature. Where a face gives geometry enough to compute an answer, it computes one. Where a random object gives it nothing, it computes nothing and says so — seeding, assisting, and defaulting to the humblest representation available. Knowing when not to claim an answer is as much a part of a trustworthy tool as computing one when it can. An engine that guessed an orientation for every object would be more impressive in a demo and worthless as a reference. Loomis chose worthless-in-the-demo, trustworthy-in-truth.

Code

Object box: seed, human-steer, orthographic by default·python
# Object: no canonical model, so NO inferred orientation. Detector seeds; human steers.
box = seed_box_from_detection(detect_2d(photo))   # a position/size guess only
box.orientation = USER_CONTROLLED                 # the engine claims none

# At rest: ORTHOGRAPHIC. Parallel edges, no convergence -- asserts nothing about
# the camera. The least-committal, most honest default.
render(box, projection="orthographic")

# TRUE perspective only when a human authors the claim by setting a focal:
if focal is not None:
    render(box, projection="perspective", focal=focal,
           guides=vanishing_points(box, focal))   # honest convergence + VP guides

# Multi-box CRUD: a scene holds many boxes, each independently human-steered.

External links

Exercise

Photograph a box-shaped object — a book, a phone, a cereal box — on a plain surface. Now try to state its exact 3-D orientation (its three rotation angles) from that single photo. Notice that you're estimating, and that with no known model of 'a generic box' an algorithm is guessing too. Argue why the engine seeding a box you then steer is more honest than any automatic orientation it could print.
Hint
Without a canonical reference for the specific object, its orientation is genuinely under-determined from one image — the same ambiguity that made body depth hard, now with no model to lean on at all. An automatic answer here would be a confident guess dressed as a measurement; letting you set the orientation (or leaving it orthographic) keeps the engine honest about the one thing it truly can't compute.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.