– Anaïs Nin
Category: Style
Think in Sprites When You Generate Images with GPT
Here is a useful trick if you are generating a lot of small graphics with GPT.
Not every image you need actually needs to be generated as a standalone image.
A small icon, avatar, button state, game asset, UI decoration, or other graphic may only occupy a tiny amount of your final product. But image generation systems often work at resolutions much larger than the thing you actually need. ChatGPT Images now supports different aspect ratios and resolutions, but you are still generating a relatively large image for a relatively small object. Larger image outputs generally consume more image tokens and can take longer to generate. (OpenAI Help Center)
So think like a game developer from the 1990s. Think in sprites.
A sprite sheet is simply one image containing many smaller graphics. Instead of loading 100 individual images, a game could load one image and tell the graphics system which rectangle of that image contained the sprite it wanted. The browser or game engine would then display only that portion.
The same idea works surprisingly well with AI image generation.
1. Generate a grid instead of individual images
Suppose you need 20 tiny cartoon avatars for an application.
You could ask GPT to generate 20 images. That means 20 generation jobs, 20 waits, and potentially 20 times the generation overhead.
Instead, ask it for a grid:
Create a 10×10 grid containing 100 unique cartoon avatars. Each avatar should occupy exactly one cell. Keep the visual style consistent, but make every character distinct. [what you want the images of – in the case below clubhouse dressed, 2d, comic style, animals]
You now have one generated image.
Then split the image into its cells yourself. This is trivial with an image editor, a tiny script, or even a second AI-assisted step in your agentic environment.
The important part is that the generated image is now the container, not the final asset.
You can do the same thing for icons, illustrations, characters, graphics, UI elements, or almost anything where each individual asset is smaller than the generation system’s useful output size.
Here is an example of one I iterated on for a hobby project at http://www.skillbase.club where we made the theme country club based on the domain we could get.

That’s 100 avatars for the same time and token cost as a single oversized image.
2. Use grids for drafts, too
This is arguably the more useful trick.
Maybe you don’t need 20 images. Maybe you are trying to decide which version of one image you actually want. Instead of generating four separate versions, ask GPT for a 2×2 grid:
Create four variations of the same clubhouse in a 2×2 grid. Keep the subject identical, but make each cell explore a different composition. [or name each composition like Lichtenstein-esque or paper cut out]
Now you can compare four directions in a single generation.
Once you pick the winner, generate that one properly.

This changes the economics of experimentation. You are using the expensive, slow part of image generation to explore a space of possibilities, rather than paying the full cost to explore each possibility independently.
And there is a broader lesson here.
We spent decades learning to optimize graphics by separating the asset from the container used to transport it. AI image generation makes it easy to forget that distinction.
If you need something small, generate a sheet. If you need alternatives, generate a grid. Then cut out what you actually need.
Reasoning will never make a man correct an ill opinion, which by reasoning he never acquired
– Jonathan Swift
La folie de Dieu, c’est la vie.
You can’t build a vision
Great visionaries know better than to try.
Founders are encouraged to think bigger, dream bigger, and change the world. Investors ask about the ten-year roadmap before the company has ten customers. Every pitch deck ends with an enormous market and an even larger ambition.
Ironically, none of history’s great companies were built by executing their original vision.
Many founders have misunderstand what a vision is. They believe it is the product they should build. In reality, it is a vague direction they want to travel.
This seems backwards until you realize that a vision is not a blueprint. It is a compass.
A blueprint describes something that can be built today. A vision describes a future that cannot. Trying to build the destination first is one of the fastest ways to build something nobody wants.
Instead, great founders ask a different question.
“What is the current established working system that I can make a derivative of that points in the right direction”
The distinction sounds subtle, but it changes everything.
SpaceX did not begin by building a city on Mars. It started by trying to build a rocket (in fact buying existing rockets) that could reliably reach orbit and eventually be reused. “Making humanity multiplanetary” was never the first product. It was the reason for building the first product.
Amazon did not launch as the everything store. It sold books because books were one of the easiest retail categories to digitize. Only after mastering logistics, fulfillment, warehousing, recommendations, and customer trust could it expand into everything else. Patience is Bezos’ super power.
Uber did not replace transportation. It simply made hailing a ride easier. The broader transformation of urban mobility emerged from years of iteration after customers had already adopted the first step. And transportation is far from replaced.
Even Apple followed this pattern repeatedly. The Macintosh was not Steve Jobs’ ultimate vision for personal computing. In fact Lisa was a visionary product that failed terribly. The iPod was hardly the invention of portable music. In many respects it was an exceptionally well-executed digital Walkman. Yet it became the foundation for the iPhone, which became the foundation for an ecosystem that Jobs could never have shipped on day one.
There is an uncomfortable lesson hidden inside all of these stories.
Visionaries don’t build their vision.
They build the first stepping stone that reality will allow. They don’t fight the world to manifest their vision to life against all odds. They fight their ego to build what’s possible today. They hope the two will meet one day.
Many founders resist this because it feels like compromise. They worry that solving a smaller problem somehow means thinking smaller. They want to standout and be impressive.
The opposite is true. I am impressed by the success of the unimpressive.
Reducing an ambitious future into something customers will actually buy is one of the hardest acts of product design. It requires sacrificing elegance for momentum, completeness for usefulness, and pride for learning.
Almost anyone can imagine a better future. Make claims of what the future will look like and sell that.
The rare skill is translating that future into something almost disappointingly ordinary, shipping it, learning from reality, and repeating the process until the original vision slowly emerges.
History suggests that this is not the exception.
It is the process.
Ideation without execution is delusion
– Robin Sharma
Can You, Did You, and Taste
Three stages separate ideas from products, and products from things people love.
The first stage is capability.
Can it be done? Can the software be written? Can the company be started? Can the product be built? Can the problem be solved?
These questions matter because capability is the foundation upon which everything else rests. Nothing can be executed, adopted, or admired until it is first plausible.
This is where most people rest comfortably.
The surprising thing about capability is that proving something can be done often provides many of the same emotional rewards as actually doing it. Once someone becomes convinced they could build the company, write the book, get in shape, learn the skill, or launch the product, the pressure largely disappears. Potential becomes a source of comfort.
The entrepreneur enjoys imagining the startup. The author enjoys discussing the book. The engineer enjoys architecting the system. The athlete enjoys knowing they could get serious whenever they decide the time is right. People tend to love their own brains and marvel at what it can achieve. Potential is attractive because it is free from accountability. It cannot fail because it does not yet exist.
Did you actually do it?
The second stage is execution. It only lives in the past tense. This is where the conversation changes. Ideas become products. Plans become companies. Discussions become outcomes. Concepts become features available for use and critique to the public domain. The world stops evaluating intentions and starts evaluating evidence.
A customer cannot buy potential. A user cannot interact with ambition. An investor cannot generate returns from possibility alone (though they push this rule as much as possible). The market, unlike our friends and colleagues, is remarkably indifferent to what could have happened. It only responds to what did happen.
People who reach this stage deserve significant credit. The distance between an idea and reality is far larger than most people appreciate. Building something that survives contact with the real world is difficult. Something complete, end-to-end. It accomplishes its intend (big or small) and no hand holding or excuses are needed for it to be used properly. Launching is difficult. Selling is difficult. Maintaining momentum is difficult.
Most people never get there. And I am being generous with “most”.
Yet many who do arrive at execution mistakenly believe they have reached the finish line. They assume that because something works, people will care. They assume that because a solution is objectively better, adoption will naturally follow. They assume that utility alone is enough. They believe a logical use case exists and therefore usage will follow. A good plan and execution is all that is needed.
History suggests otherwise.
The graveyard of technology is filled with products that worked. Many were faster than their competitors. Many were technically superior. Some were years ahead of their time. Their failure was not one of engineering. Their failure was assuming that human beings make decisions primarily through logic.
Taste.
Taste is one of the most misunderstood concepts in business because it is often reduced to aesthetics. People hear the word and think about typography, color palettes, industrial design, architecture, or fashion. Those things matter, but they are only symptoms of something deeper.
Taste is the ability to understand how another human being will experience what you have created.
It is the recognition that people do not merely consume functionality. They consume stories, emotions, identity, aspiration, status, trust, culture, and delight. A chair is not simply somewhere to sit. A restaurant is not merely a place to eat. A home is not simply shelter. A product is not just a collection of features. Even a purposefully poort taste for those that are tasteless is, in fact, a taste. The trickle down story line of decisions and focused intent lead to those that have the same test to become interested. Taste is not being fashionable, it is knowing people need clothes and certain groups of people like cheap clothes, some like expensive clothes, and some like expensive clothes that are on sale – but they know which group of tasters they want to have.
Every meaningful creation eventually becomes an experience.
This is why two products with nearly identical functionality can produce radically different outcomes. One becomes beloved while the other is forgotten. One creates a movement while the other creates a user base. One becomes part of a person’s identity while the other remains a tool.
The difference is often explained by taste.
The creators who understand taste recognize that presentation is part of the product. Storytelling is part of the product. Culture is part of the product. The emotional experience surrounding something is not separate from what is being built. It is one of the things being built.
Most people spend their lives asking whether something can be done. A much smaller group proves that it can. The rarest creators understand that neither capability nor execution guarantees significance.
The first stage asks whether something is possible.
The second proves that it is.
The third determines whether anyone cares.
“What we know of other people is only our memory of the moments during which we knew them. And they have changed since then.”
ts Elliot- – the cocktail party
“art’s true value lies in its ability to not only survive times of change, but to actively drive and lead that change”
Robert Redford
Folks still wonder “why MCP?”. Here is a step-by-step comparison
Not much feels different. And that’s exactly why it confuses people. They expect magic.
I want a list of users. Here’s my pseudo-code way of sorting it out ways of doing it.
Traditional-coder scenario
Human: “I want user data from your system.”
Human goes to the docs
Finds the right endpoint
Sets up auth
Writes code: GET /users
Parses the response and uses it
The human is doing discovery, auth, integration, and parsing.
AI without MCP
Human Prompts: “List users from System X, using this doc [url]”
AI tries to reverse engineer endpoints and payloads
Maybe works, Maybe hallucinates
Human does not get coffee, they have to watch the AI progress and steer it.
The AI is the one reading the docs, but the developer is still doing work.
MCP scenario
Human: “List all users from in a Modal”
That’s it. Human goes to get coffee.
AI checks connected MCP servers
AI asks: “Do I have a tool for this?”
Finds a structured tool like list_users exposed by that service’s MCP server
That tool defines:
- What it does
- What inputs it needs
- How auth works (handled server-side)
AI calls the tool through the MCP client
MCP server executes the call safely
Structured user data comes back
AI keeps going with real data
AI: “Modal with Users is ready for your review”
Human Browsing Web
Human says, “I want to get Users for the [service]”
Human opens Chrome and goes to https://%5Bservice%5D.com
Human click “Users” on the page.
They read list of Users on the page and spams them (or whatever else humans like to do these days.)
You don’t manually open a socket and craft packets. Your browser speaks a standard protocol and every website that follows it “just works.”
MCP is trying to be that layer, but for AI using software tools instead of humans using web pages. The key part is the contract. The AI is not inventing how to call your system. It is using a capability your system formally exposed over a shared protocol.
