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

Analysis, Never Generation

~11 min · non-goal, scope, single-responsibility, family

Level 0Blank Page
0 XP0/35 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"The features tell you what a tool does. The non-goals tell you what it is."

The One-Way Arrow

Loomis has exactly one direction: photo goes to structure, never structure to image. It reads a reference and recovers the construction. It never runs the arrow backward to paint a picture. That is not a missing feature waiting to be added — it is a wall, deliberately built, and the wall is load-bearing.

The Rejected Feature

The most seductive request an art tool hears is: "draw the construction for me so I can copy it." It sounds like pure help. It is quietly poison. The whole engine exists to serve a practice loop whose active ingredient is you constructing the drawing yourself and then checking it. Hand the finished construction over and you have replaced the practice with tracing — the reps happen, the skill doesn't. So "draw it for me" is not a backlog item. It is an explicit non-goal, refused on principle.

Why Ember Owns Generation

In the cwk family, each engine owns exactly one responsibility, and the boundaries are sharp. Ember owns generation — the parameters-to-image arrow. Loomis owns analysis — the image-to-parameters arrow. They are siblings pointing in opposite directions with zero overlap. Loomis never loads a diffusion model, not because it couldn't, but because that would smear a clean line: two engines half-owning generation is worse than one engine owning it fully. Single responsibility is what lets each one be trusted for its one job.

Non-Goals Are a Spine

A tool that agrees to do everything has no shape, and a shapeless tool can't be trusted for anything in particular. Loomis's list of refusals — no generation, no drawing-for-you, no beautification, no redraw assistance — is not a set of limitations to apologize for. It is the spine that makes its single "yes" (an exact, reproducible construction) worth relying on. The discipline of the non-goal is the same discipline the whole quest keeps returning to.

Code

The endpoint that will never exist·python
# These endpoints exist -- both point photo -> structure:
#   POST /api/v1/portrait/analyze     photo        -> construction   (analysis)
#   POST /api/v1/grade                your drawing -> score          (comparison)

# This one does NOT exist, and never will, by design:
#   POST /api/v1/portrait/draw-for-me  parameters  -> a drawing
#     ^ rejected: it would hand you the answer and delete the practice.

# Generation lives in a different engine entirely:
#   Ember  owns  photo <- parameters   (make an image)
#   Loomis owns  photo -> parameters   (recover the structure)
# Same family, opposite arrows, zero overlap. That gap is the design.

External links

Exercise

Pick a tool you genuinely admire — an app, a library, a physical instrument. List three things it deliberately refuses to do, even though it easily could. Then argue how each refusal makes it more trustworthy at its one real job. If you can't find any refusals, that may be why the tool feels bloated.
Hint
Great tools are legible because their edges are sharp. A refusal like 'this text editor will never render your document as a PDF' isn't a gap — it's a promise about what the editor is for. Loomis's 'never generates' is the same kind of promise.

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.