I learned one of the most important words in my craft in a college classroom, and it wasn't in the syllabus.
My game programming professor, Dave, pulled up a montage one afternoon: decades of games stitched together, frame by frame, all to explain a single idea. Why do people love Mario? Not respect it. Not remember it. Love it. The answer he gave us had a name: squish.
Squish is the feel of a thing. The weight, the response, the texture of an interaction; the part you don't see in a screenshot but feel in your thumbs. It's the difference between a button that does something and a button that feels good to press. Once Dave gave me the word, I realized I had been feeling it my whole life without being able to point at it.
Mario is made of squish
Watch what happens when Mario jumps. He doesn't just move up and come down. There's a wind-up; a crouch before the launch. At the peak there's a moment of hang, a held breath, and then the fall comes in heavier than the rise. You can feel gravity grab him. Add the double jump and the timing tightens into something your hands learn before your brain does.
None of that is necessary. A character could ascend and descend in a straight functional line and the game would still technically work, but it wouldn't be Mario. It wouldn't be the thing that millions of people carry in their bodies decades later. The weight in that fall is not decoration; it is the soul of the whole experience.
That's what squish does: it turns function into love. A game that works gets played once. A game with squish gets felt, and felt things get returned to.
I have spent years chasing that feeling in software that has nothing to do with games. The hover state that responds just right. The animation that has weight instead of just motion. The little moment of resistance before a thing snaps into place. I build desktop tools, not platformers; the realms are completely different, but the question is identical every time: does this feel alive, or does it just function?
Then speed showed up
Here is the part nobody was ready for.
I can build faster now than I ever could before. Things that would have taken me years as a solo developer are achievable in months, sometimes weeks. AI handles the scaffolding, the boilerplate, the thousand small functional decisions that used to eat my nights. I'm not romantic about this; it is genuinely the most powerful leverage a builder has ever held.
But speed has a cost that almost no one is naming yet.
When you can generate a working app in a weekend, something gets skipped, and the thing that gets skipped is almost always the squish; because squish is slow. Squish is the part that doesn't show up in the demo, doesn't pass a unit test, doesn't make the deadline shorter. Speed optimizes for done. Squish lives in everything that comes after done.
The dead software
You have used the result. We all have, more and more lately.
An app with a clean UI and nothing underneath it. It works. The buttons respond. The layout is fine, and somehow it feels like standing in a model home: every surface correct, every room staged, and not a single sign that a person actually lives there.
There is no defining feature. No reason to come back. No reason to tell a friend. You couldn't pick it out of a lineup of ten others built the same rushed way.
It is, and I mean this precisely as someone who writes horror: uncanny. Everything is right and the whole thing feels wrong. The deadness isn't in any one detail; it's in the absence of a decision. Nobody chose how it should feel, so it doesn't feel like anything. It has no identity because no human ever insisted it have one.
That is what software without squish actually is. Not broken — Hollow.
What speed can’t generate
Here is the line I keep coming back to. AI can generate function. It cannot generate the decision to give a thing a soul.
Squish doesn't come from capability; it comes from caring. From a human being looking at something that already works and saying this should feel like something, and then spending the slow, unglamorous time to make it true. The weight in Mario's fall existed because someone decided players should feel gravity in their hands. No model proposes that on its own. It is a choice, and the choice is human.
So the danger of the AI era was never that the machines would build badly. It's that they build adequately, instantly, at infinite scale. Adequate is the most seductive enemy soul has ever faced. Why spend three more days on feel when the thing already works? Because the thing that already works is the thing no one will remember.
Speed and soul are not enemies
I want to be clear, because the easy version of this essay is anti-AI, and I don't believe the easy version.
AI didn't take my squish away. It gave me time for it.
Every functional decision I hand to the machine is an hour I get back for the human part; the feel, the weight, the identity, the thing that makes someone return. Used with intention, speed is not the enemy of soul. It is the budget you spend buying more of it.
The builders who win this era won't be the ones who ship the fastest. They'll be the ones who use the speed to afford the squish everyone else skipped.
Dave gave me a word for a feeling in a dark classroom years ago. I've spent every project since trying to earn it. Now, with more power at my fingertips than that version of me could have dreamed, the question hasn't changed at all; it's only gotten louder.
Anyone can make it work. Squish is the part you have to think and feel.
This is the first in a series on building with a soul in a fast age. Next: why the job of a developer was never really the code; it was the thinking.
Christian Smith (RNVizion) is a Python developer, AR/VR Sales & Support Specialist at Meta, and a self-described modern-day Renaissance man. He builds desktop tools, writes fiction, makes art, and is figuring out the rest as he goes. Find his work at rnvizion.dev.
Top comments (0)