Back to the post
Posts

Transcript

Building Eskiz, chapter one: the number input

Synthetic voices · A dialogue adaptation of this article, not a verbatim reading.

Narrator & Maya · 7:08 · Read the article

01One small rectangle

Narrator: I'm Khalil, and this is Maya. This is chapter one of building Eskiz. Today we're discussing the most important component in a CAD application. The number input.

Maya: You announced a new approach to three-dimensional modeling. And we've arrived at a small rectangle.

Narrator: A very consequential rectangle. Width, radius, angle, spacing. Sooner or later, a design decision passes through it. Let's take a panel, one hundred and twenty millimeters wide.

Maya: And make it eight millimeters wider. I feel reasonably qualified for this project.

Narrator: Good. Now keep its width related to another part, change the units, and edit three different panels together.

Maya: The rectangle has acquired responsibilities.

This part of the article

02Let me finish typing

Maya: A normal number field can accept a number. It doesn't understand twelve centimeters, or a calculation. So you let people type text instead.

Narrator: And now we have to understand the text. Halfway through typing one hundred and twenty plus eight, it says one hundred and twenty plus. That isn't a new width. I haven't finished.

Maya: An unfinished thought. Please don't manufacture it.

Narrator: We separate the draft, the preview, and the committed value. A valid edit can settle when you press Enter or leave the field. An invalid expression stays there so you can fix it.

Maya: Keep the evidence. Don't politely erase the bit I need to repair.

This part of the article

03Typing comes first

Narrator: The first job is typing a replacement. Usually it's faster to write the new number than to put a cursor between the old digits.

Maya: Especially when the digit is small and your coffee is ambitious.

Narrator: So when a plain value gets focus, the old number stays visible in a lighter color. Start typing and you replace it. No selecting or clearing first. If you want to edit the existing number, an arrow key brings it back.

Maya: And if I just click in and leave?

Narrator: Nothing changes. A stored formula is different: focus brings back its source. We had a regression where ten plus five became ten plus five thousand one hundred when somebody typed one hundred at the end.

Maya: That's quite a panel.

Narrator: Selecting the source on entry prevents that when the host wants replacement behavior. Visually, we keep an internal focus bar. No extra outline around the whole performance.

This part of the article

04One drag, one decision

Maya: Sometimes I don't know the number. I just know the panel looks a little too narrow.

Narrator: Then drag the label. The shape can preview the change as you move. Release, and that's one committed edit. One undo step, rather than a small archive of your hand movement.

Maya: Undo should reverse a decision. Not reconstruct my wrist.

Narrator: Alt makes the adjustment finer. Shift makes it faster. Escape cancels and restores the starting value. The component supplies those boundaries; the application owns the history.

This part of the article

05The unit has a job

Narrator: Next, units. Twelve centimeters and one hundred and twenty millimeters describe the same width. Typing either should be useful.

Maya: But changing which unit I look at shouldn't change the object.

Narrator: Right. Display preference is separate from the authored quantity. We can show a rounded number without throwing away the underlying precision. Otherwise, merely looking at your model would gradually redesign it.

Maya: A remarkably passive collaboration.

This part of the article

06Keep the calculation

Maya: What if the width is half another panel's width? I want to keep that relationship, not just today's answer.

Narrator: That's why we keep the formula's source. The field can offer references, show the result, and help with errors. The document owns the actual dependency graph.

Maya: And dragging the result?

Narrator: It should preserve the calculation. Half the other width, plus a small adjustment. Not silently replace the relationship with a plain number.

Maya: I wrote down why it was that size. Please don't tidy away my reasoning.

This part of the article

07The same number, different meanings

Narrator: One hundred and twenty can be a default. A number you typed. An override. The result of an expression. Or a value driven by something else.

Maya: Same digits, different answers to: can I change this, and what happens if I do?

Narrator: Add a mixed selection and an error, and we have seven readings. Some offer a reset. A formula has its source. A driven value identifies where it comes from. We use markers and behavior as well as color.

Maya: Because a purple one hundred and twenty is not, by itself, an explanation.

This part of the article

08Three panels, still three panels

Maya: Our panels are forty, sixty, and one hundred millimeters wide. The field says Mixed. It doesn't pick a favorite.

Narrator: Type plus twenty and they become sixty, eighty, and one hundred and twenty. Then minus forty subtracts forty from each. Dragging applies a shared adjustment too. Their differences survive.

Maya: If I want them all to be eighty, I type eighty. An absolute assignment.

Narrator: And in this mixed field, parentheses make an absolute negative explicit. Parentheses, minus forty, close parentheses. Without them, minus forty means subtract forty from each.

Maya: A distinction worth showing before someone experiments on a building.

Narrator: The batch succeeds together or is refused together. And Escape restores the original values during a drag. The inspector chooses the targets; the field shouldn't secretly manage the entire application.

This part of the article

09Still working on the small version

Narrator: An inspector gets narrow. A formula gets long. We let the text borrow space from the side controls, and let those controls come back when you need them.

Maya: Are you happy with it?

Narrator: Not very, yet. Especially for long formulas. Keeping them readable and easy to edit in a small field is still something I'm thinking through. The demo shows where we are. It isn't a finished answer.

Maya: Good. A work in progress is allowed to contain some progress still to do.

Narrator: Limits need decisions too. A soft limit warns. A hard limit constrains. A cyclic angle can wrap; a hinge might have real stops. And the document can reject a perfectly valid number if that edit doesn't make sense.

Maya: Then keep my draft, tell me why, and don't move the object anyway.

This part of the article

10Back to the model

Maya: This is a lot of behavior for something people should barely have to think about.

Narrator: That's the point. Type what you mean. Explore without losing your starting point. Keep relationships. Understand a refusal. Those little interactions add up to easier modeling.

Maya: And an AI proposing the change still needs those same rules. We need to inspect it, adjust it, and trust what gets committed.

Narrator: The production component is much richer than these focused examples. There are plenty more advanced features to discover in the Eskiz app. Here, we wanted to show the decisions underneath them.

Maya: We started by changing a panel's width.

Narrator: And now we have opinions about the first arrow key.

Maya: I'm keeping mine. In a lighter color.

This part of the article

11Until next time

Narrator: Thanks for listening. Follow along for more articles, experiments, and things that worked on my machine.

Maya: Some of them might even work on yours.

Narrator: No promises. Have a lovely day. Go make something.

Maya: Preferably a cup of tea first. Bye!