Kiln

Direction 04 · Claude studio
Brand exploration · engine untouched

01  The idea

Every abstraction has a shape.

Engineers work blind. You write code against a machine you can't see, and expertise is really just the quality of that invisible picture. Kiln draws the picture — then lets you move it with your thumb.

The mark is not a picture of a kiln

tap it

The K is a diagram from the product. Stem = the process. The upper arm ends in a solid node — fired material coming out. The lower arm ends in a hollow slot — raw material waiting to go in. Unfold it and you get the engine's transform family, the same layout that draws escape analysis and query planning inside real lessons.

Why this, and not "transformation"

The brief's premise — programming is a system you can touch — is right about the verb and silent about the noun. Touch what? Every learning product on earth claims transformation; almost none can say what shape the thing is. Kiln can, because the engine already compiles meaning into twelve named figure families. That vocabulary is the moat, so the brand adopts the product's illustration system instead of inventing a second one beside it.

What the idea governs

MARKBuilt from the engine's grammarNot a letter in a rounded square. A figure that happens to read K.
ARTThe product is the illustration systemNo second visual language. Marketing draws what lessons draw.
REWARDYou keep shapes, not pointsProgress is a set of diagrams you can now read.
MOTIONShapes become other shapesEvery movement is a cause. Nothing is atmosphere.
02  Mark & wordmark

One form, from 16px up.

Drawn on a 100-unit grid at 45° only, with flat terminals. The asymmetry is deliberate and it is the whole idea: raw is open, fired is closed. There is no second file for small sizes — the same geometry survives because the hollow slot is the only fine detail and it sits at the widest part of the form.

Size ladder

16 · 24 · 32 · 48 · 96 px
16
24
32
48
96

Two states, one form

raw · fired

Firing closes the open terminal and lays an amber edge under it. The mark goes from asymmetric to symmetric — legible at a glance, with no new element introduced and no colour needed to tell the two apart.

Monochrome is the master

never load-bearing
Kiln

The lockup's K is the mark itself at text weight, set against Gabarito 700 at −5% tracking. Logo and wordmark are one object at two scales, so they cannot drift apart.

03  Colour has tense

Violet is now. Amber is kept.

The product already forbids coloured text — ink only, with state carried by tinted chips, 6px dots and a fill on the one element being taught. The brand adds a rule the product didn't have: the two hues are tenses. Violet marks what is live under your thumb this second. Amber only ever touches something you have already earned. Amber on an unearned object is a bug, not a style choice.

Paperthe ground · always#FDFCF8
Panelfigure stages#ECEBE6
Inkall text · all form#1B1B1F
Violetpresent tense#7C3AED
Amberpast tense · earned#F09D1E
Violet · present
  • the CTA you are about to press
  • the one figure element being taught
  • the segment you are currently inside
  • a value caught mid-change
Amber · past
  • the flat edge under a fired tile
  • the glaze line on a mastered shape
  • a module you have completed
  • nothing else, ever

One violet element per view, maximum. If two things are live at once, the screen is lying to the learner about where their attention belongs.

04  Type & composition

Two faces. No third.

Gabarito carries voice; Spline Sans Mono carries evidence. The split is absolute — if it is a claim it is Gabarito, and if it is a measurement, an identifier or a line of code it is mono. Adding a display serif would be the fastest possible way to look like every other deck.

Hierarchy for technical learning

specimen
Mechanism · 4 of 11
A pointer is an address, and an address is a number

Two variables, one home. Change it through either name and both see it.

var total int = 40
p := &total
// both names now reach one address
allocations
3
escapes
0
RoleFaceSetting
HeadlineGabarito 70026–54px / 1.03 line-height / −3.6% tracking
BodyGabarito 40015–18.5px / 1.55 / measure capped at 35em
LabelsSpline Sans Mono 60010.5px / +14% tracking / uppercase
CodeSpline Sans Mono 400–60012.5px / 1.75 / tabular-nums
05  Motion

Nothing moves without a cause.

No idle loop, no ambient drift, no particles, no logo that breathes. A Rive state machine with five inputs, driven by real learner state — so the mark is structurally unable to celebrate something that didn't happen.

Play the states

artboard · mark

rest — perfectly still. The mark never animates to attract attention; that is what a banner does, not a tool.

Rive hand-off

state machine · inputs
InputTypeDrives
progressNumber 0–100Stem fills violet from the base. Data-bound 1:1, no easing — it is state, not motion.
pressBoolean90ms depress of 3px; the flat edge compresses to zero. Release settles in 140ms with no overshoot.
resolveTriggerThe arm the answer travelled goes violet for 400ms, then returns to ink. Nothing else acknowledges it.
fireTriggerThe Blank leaves the slot, crosses the stem and lands in the node. The slot closes and glazes. 1.1s, once.
reducedBooleanEvery transition becomes a 0ms cut. progress still tracks — state survives, motion doesn’t.

One artboard serves the app icon, the course-home node and the reward tile as a nested artboard. If a surface needs its own new animation, the system has failed.

06  The character decision

A material, not a creature.

The other three directions all answered "no character" — the safe answer, which quietly leaves onboarding, empty states and completion to generic UI. A mascot would patronise this audience. So Kiln's entire cast is one faceless object: the Blank, an unfired form that is the learner's understanding of the idea in front of them. Its whole emotional range is material state. No eyes, no voice, no opinions.

Unfirednot met yet
Rawlesson opened
Workingunder your thumb
Firedyours · glazed
WHEREFour places onlyCourse home, the mastery ritual, empty states, and the shelf.
NEVERNot inside a lessonInside a lesson the figure is the truth and the brand stays out of it. The diagram is never decorated.
VOICENone at allIt cannot congratulate you, drop a hint, or turn up on a streak nag. It only changes material.
SHAPEThe hexagon is the slot's contentsIt is what sits in the mark's open terminal — so the character and the logo are the same story, not two.
07  What you keep

You earn the shape you learned from.

Not a badge, a gem, a streak or an invented trophy. When a mental model becomes yours, you keep the compressed glyph of the engine family that taught it — the same form you just spent twenty minutes manipulating, reduced to something you can read at a glance. Your profile is a shelf of diagrams you can now decode. That is capability made visible; a number never was.

The shelf

3 of 8 fired
memory
layout
queue
view
stack
frames
b-tree
latency
dist.
query
plan
concurrency
seq.
isolation
matrix

A fired tile takes an amber flat edge — the product's own keycap depth, now carrying meaning. Unfired tiles are hairline and hard to read, which is honest: you cannot yet read that diagram either.

08  Product proof

One learning moment. One mastery moment.

The identity has to survive contact with a real screen at 390×844. Notice what the brand does not do on the left: no mark, no character, no amber. Inside a lesson the diagram is the truth, and violet marks only the element you are working on.

Mechanism · 4 of 11
Two of these outlive the frame that made them
Tap a value, then tap the home the compiler gives it.
local int returned ptr struct copy captured var escapeanalysis stack frame heap
Check placement

Lesson · one violet element, ink everywhere else

Model · complete
Escape analysis is yours
You can say where a value lives before the compiler does.
memory
layout
Added to your shelf

Mastery · the only place amber is allowed