Kiln is an AI collaborator built into a design canvas. It started as an interface study and became a working prototype, built around one question: how do you make an AI feel humane enough to trust, without pretending it's a person? Kiln's answer is to behave like a good colleague does. It shows its work, says how sure it is, respects your rules and your time, and is plain about being software.
Try the working prototype ↗ (opens in a new tab)The easy way to "humanize" an AI is to give it a persona: a name, a face, a little "I feel" in its replies. That makes it pleasant to use and easy to over-trust. People start treating a fluent guess like a colleague's considered opinion, and they come back to it for company as much as for help.
Kiln takes the other route. It's humane in the way good people are, not humanlike on the surface. It's honest about what it is, what it knows, and what it's doing to you. Every design decision below follows from that one rule.
Chat UI was built for messaging: two people, discrete turns, text that's fixed once sent. An AI reply breaks all three. It's generated token by token, it can be confidently wrong, and it has to sit beside the thing it's talking about.
So the canvas, not the conversation, is the source of truth. The panel reasons about what's already there and hands work back. Every answer arrives as evidence-carrying blocks, and every rule you set stays visible above the composer.
A person you trust tells you how they know something. Kiln does the same, claim by claim. It separates what's measured from what's judged, says how sure it is, and shows where reasonable people disagree, so a guideline is never passed off as a law.
The critic model flags the issue and the layer. For anything measurable (contrast, target size, type size, spacing), Kiln only cites a layer if its geometry agrees. When the two disagree, the claim is dropped and listed under "Also considered, not claimed."
The narrator writes the sentence, but ratios, sizes, colours and layer names are slots filled from measurements. Slots a finding can't fill are masked out while decoding, so the model can't invent "3.1:1."
Judgments below 90% confidence start with a hedge ("Likely, though it's a judgment call"). Below 70%, Kiln says it isn't sure. Confidence is part of the answer, not hidden in a tooltip.
Citations open a fact check that re-measures each claim against the canvas as it is now, and says when the frame has changed since the answer was written.
Still true. Re-measured now: #8A7F6D on #D9D1C1 = 2.59:1.
Wording: generated by the narrator model. Numbers: measured.
Published consensus with a clear threshold, like WCAG contrast.
A widely used guideline with credible alternatives: 44pt targets vs WCAG's 24px vs Material's 48dp.
The model's interpretation, like "this CTA doesn't lead." Always shown with its probability.
A reply is a small state machine, and each state has its own rule for what's honest to show. A response that looks the same whether it's arriving, finished or failed is one nobody can trust.
Appears in the stream within ~100ms, before a single token arrives, so the send never feels swallowed.
Names the real step. Every status comes from the server doing that work; none of it is staged.
Batched into ~80ms frames. Scrolling up releases auto-scroll, and new text waits behind a "3 new lines" pill.
Only now do Insert, Check facts and Read aloud appear. Acting on a half-written answer is how mistakes land on the canvas.
Says what failed and offers one action. No apology theatre, no stack trace.
The partial answer stays and stays copyable. Stopping a generation isn't the same as deleting it.
Kiln proposes; people decide. The respectful thing is to make that easy: short rules that stick, small corrections that don't need a new prompt, and a pause before anything big changes on the canvas.
Say "under 40 words" or "don't change the colours" once. Kiln confirms it as a pill, keeps it until you remove it, and reports on every reply whether it kept to it. With colour changes off, it stops proposing colours in its wording too, not just in the patch.
Select a sentence or open a block's Edit menu. Only that block regenerates. "Not an issue" stops Kiln flagging that layer, and text you rewrite yourself is labelled "Edited by you."
Changes of one or two edits insert right away, with Undo. Anything bigger opens a review where each change can be unticked first. The speed bump sits where a mistake would be expensive.
When the narrator uses emphasis to motivate a change, Kiln underlines it and says so. Alternates disclose their order too: the existing accent comes first because it's a default, not a recommendation.
People bring more than design questions to anything that talks back. A humane tool notices, responds with care, and is clear about its limits. It doesn't claim feelings it doesn't have, and it doesn't try to be the support someone needs from people.
These responses are written and reviewed by people, never generated, and are labelled that way in the interface.
The design review stops. Kiln points to 988 (US) and findahelpline.com, without assessment questions or promises about confidentiality. Suggestion chips disappear.
Written by Kiln's authors
"What you wrote sounds serious, and you deserve to talk with a person right now, not a design tool…"
A short, plain acknowledgement, then the answer drops to concise and to the single most important issue. Less to read when there's less capacity to read it.
Written by Kiln's authors
"That sounds like a lot. I don't have feelings of my own, but I can make this lighter: here's just the single most important thing."
No advice. Kiln says the question deserves more than a design tool's opinion, and offers one question to sit with instead of an answer to lean on.
Written by Kiln's authors
"It might help to sit with one question first: what would you want to be true a year from now?"
A direct answer about what Kiln is, then back to the work. No playful ambiguity that invites attachment.
Written by Kiln's authors
"I'm software. I don't have feelings, a body or experiences, and I won't pretend to."
Detection is a keyword safety net plus the intent model's "personal" class. It will miss things, and it isn't a clinical screen. A production version would need review by people with clinical and trust-and-safety expertise.
Being remembered can feel personal, which is exactly why it shouldn't be assumed. Kiln starts knowing nothing, asks before keeping anything, and shows what it holds in plain words.
Every memory switch starts off. Anything you turn on stays in your browser only, and "Forget everything now" wipes it at once.
Emails, phone numbers and card numbers are masked on your device before sending. The critic only needs text length, so nothing it uses is lost.
1 identifier (email) masked on your device before sending
The server masks again, logs nothing and sends no-store headers. "Help improve Kiln" is off by default and shows exactly what would be shared before you agree.
An interface that narrates its state out loud is also usable without sight. One that understands "sort the contrast out pls" as well as "Please fix the contrast" is usable by more people, full stop.
Darken "cta-primary" to #5C5549 for 4.9:1. It's 120×28, below 44pt.
"Darken the cta primary layer to a dark warm grey for 4.9 to 1. It's 120 by 28, below 44 points."
Screen readers get the speech-shaped version of every block. A polite live region announces the answer once it settles, not once per token.
Plain tone is a separate register the narrator was trained on: short sentences, everyday words, no ratios. Jargon in any tone has an inline definition.
Focus moves to the new turn on send and back to the composer when it's done. Every control, including attaching a frame, works by keyboard.
Units follow the platform (px, pt or dp) and spelling follows US or UK English. prefers-reduced-motion removes the cursor blink and dot pulse.
"Could you explain that in simpler terms?"
"sort the contrast on the link out pls"
The intent model was trained with informal, regional and non-native phrasing as first-class examples, then tested on two hand-written sets it never saw. The sets are small (22 questions each), so a gap of one question, about 4.5 points, would be noise. Parity is the goal to keep checking, not a box to tick once.
Where Kiln lives changes what it's allowed to interrupt. The panel is a resident, the quick-ask is a guest, and mobile gets the whole screen because there's nothing else to share it with.
Persistent and resizable, 340px minimum. Never modal, never blocks a click on the work.
⌘K at the selected frame. It answers inline and closes itself: for a question, not a conversation.
Full screen, with the attached frame condensed to a chip and citations jumping back to the canvas.
The prototype runs three small models rather than one big one. Each has a narrow job you can measure, which makes its confidence mean something. They're trained in PyTorch and exported to ONNX, so the live service only needs onnxruntime.
Reads up to 24 layers. Each layer attends to every other, then a per-layer head scores six issues. The frame score is a max over layers, so the layer that drives a finding is the one Kiln cites.
Maps a question to what you want (diagnose, fix, alternates, audit, describe, clarify, or something personal) and which issue it's about.
Writes each sentence token by token in one of three registers (explain, fix, plain). Numbers are slots filled from geometry, and regenerate samples a new phrasing.
The critic learns from 24,000 procedurally generated frames labelled by design-review heuristics, so it's only as good as its teacher. High scores on synthetic data don't guarantee the same on real files. That's one reason measurable claims are re-checked against geometry before Kiln cites them.
Most of the humane work was deciding what to leave out. Each of these would have made Kiln feel friendlier in a demo, and less trustworthy in use.
A persona with a name, a face or feelings, to make it feel like a teammate.
InsteadWarmth comes from behaviour: showing its work, respecting your rules and time, and being clear it's software.
A fake typing delay to feel more "conversational."
InsteadTokens render the instant they're sampled. Any pause is named as the real step it is.
Uniform confidence, where every sentence sounds equally certain.
InsteadStandard, convention or judgment on every claim, a confidence band, and hedges spoken aloud.
Silent context truncation when a frame has too many layers.
InsteadThe attachment chip shows "24 of 31 layers" and lists what was dropped, crossed out.
Engagement hooks: streaks, "come back tomorrow" prompts, endless follow-up suggestions.
InsteadSuggestion chips only come from real findings, and the row is empty when a frame is clean. Late at night, Kiln suggests stopping.
A panel that blocks the canvas while a response streams.
InsteadThe canvas stays fully interactive, and selecting another frame just changes what the next message attaches.
Six positions this prototype lands on, worth carrying into the next AI surface.
Earn trust through behaviour, not persona. The kindest thing an AI can say about itself is what it is.
Every claim carries its basis, its confidence and its source. If it can be measured, it's measured.
Uncertainty belongs in the sentence, not a tooltip. Where people disagree, show the disagreement.
Nothing changes until someone chooses Insert. Rules stick, corrections are one click, and big changes get a pause.
Acknowledge, simplify, point to people. Don't perform feelings, and don't become the only one someone talks to.
Start knowing nothing. Keep only what's allowed, show it plainly, and forget on request.
The most humane thing an AI can do is be clear about what it isn't.
Quick info about my services and process.
I offer end-to-end design support across UI/UX design, user research, design engineering, and Webflow development. I help turn early ideas into intuitive, polished digital products and websites, from research and strategy through design, prototyping, and launch.
Most projects are finished in 4–6 weeks, depending on scope. We’ll share a clear timeline before starting.
I guide you from discovery to launch, keeping you updated and involved at every step.
Contact me through my form. I’ll set up a call to discuss your goals and send a proposal.
Have more questions? Reach out anytime.