Four Prompts to an Impossible Tesseract
It’s Friday afternoon. I have an AI coding agent open (Claude, via the Copilot CLI), and I’ve been using Google’s Gemini to generate featured images for blog posts all week. So I decide to try something: can I get Gemini to draw an impossible tesseract?
A tesseract is a four-dimensional hypercube. When projected into two dimensions, it looks like two cubes, one nested inside the other, with their eight corresponding vertices connected by edges. An “impossible” version would render those connecting edges as Penrose-style beams, where the 3D perspective contradicts itself at the joints. Think M.C. Escher meets four-dimensional geometry.
Simple enough to describe. Let’s see what happens.
Attempt 1: “Draw Me an Impossible Tesseract”
My first prompt to Gemini was roughly that blunt. Here’s what came back:

It’s gorgeous. Escher-inspired staircases, glowing waterfalls flowing in physically impossible directions, robed figures inhabiting rooms with contradictory gravity, gears and clockwork at the base, the whole thing floating in a cosmic nebula.
It’s also not a tesseract. Not even close. Gemini interpreted “impossible” as “Escher-style impossible architecture” and “tesseract” as “vaguely cube-shaped building.” The result is a beautiful illustration that has nothing to do with four-dimensional geometry.
Attempt 2: A Precise Prompt
This is where having a text-based AI agent in the loop helps. I asked Claude to analyze the image, identify what went wrong, and write a more targeted prompt. The revised prompt was specific about the geometry: two nested cubes, eight connecting edges, Penrose-style impossible beams at the joints, Escher’s lithographic crosshatch shading, cyan glow on the paradox edges, dark background, no characters or landscape.

Major improvement. It’s clearly a tesseract now: inner cube, outer cube, connecting edges, all present and readable. The crosshatch shading and cyan glow are exactly what we asked for. There’s even a Penrose staircase inside.
But the geometry is consistent. Every beam passes in front of or behind other beams in a way that makes physical sense. It’s a well-rendered tesseract, not an impossible one. The “impossible” part got lost.
Attempt 3: Show, Don’t Tell
Claude suggested feeding Gemini a reference image of a Penrose triangle from Wikipedia, specifically the classic SVG rendering that clearly shows how each corner’s depth ordering contradicts the next. Instead of trying to describe impossibility in words, show the model what it looks like.

Now we’re getting somewhere. Look at the front-left vertical edge of the outer cube: the beam passes behind the top face but connects in front of the bottom face. Your eyes can’t resolve it. Several of the corner joints now have that classic “locally correct, globally impossible” quality. The reference image made all the difference.
Attempt 4: Structural Feedback
I asked Claude what it would change if it could talk directly to Gemini. Two things: the inner cube was too small (about 20% of the outer, should be 40-50%), and several of the eight connecting edges were hidden or merged into the outer cube’s beams. I fed that feedback back to Gemini.

The inner cube is properly proportioned now. You can count six or seven distinct connecting beams, several with impossible joints where the depth ordering flips mid-beam. The interior is denser with staircases and structure, making the whole thing harder for your eyes to resolve. That’s the sweet spot: enough structure that you keep trying to make it make sense, and it keeps refusing.
What Actually Happened Here
Four iterations, maybe twenty minutes, from “pretty but wrong” to “geometrically sophisticated impossible object.” But the interesting part isn’t the final image. It’s the workflow.
I was acting as a relay between two AI systems. Gemini generated images. Claude analyzed them, identified geometric deficiencies, and wrote refined prompts. I copied text between two browser tabs. The two models never communicated directly; I was the human vertex holding the triangle together.
Each model compensated for the other’s limitations. Claude can reason about geometry (occlusion ordering, tesseract topology, Penrose contradictions) but can’t generate pixels. Gemini can generate pixels but can’t evaluate whether the geometry it produced actually contradicts itself. Together, through me, they iterated toward something neither could have produced alone.
The Missing MCP
If you’re not familiar with MCP (Model Context Protocol), it’s a standard that lets AI agents call external tools. My Claude agent already uses MCP to read files, search code, call APIs, and manage WordPress. What it can’t do is call an image generation API, consume the resulting pixels, evaluate them, and fire back a refined prompt automatically.
That workflow exists in proof-of-concept form. A quick GitHub search turns up several MCP servers for Gemini image generation, plus “agent bridge” MCPs designed to connect multiple AI models. None have more than a handful of stars. The plumbing is there; the ecosystem hasn’t caught up yet.
When it does, the four-iteration cycle we did manually will collapse into an autonomous loop. The agent writes a prompt, generates an image, evaluates the output against the spec, identifies what’s wrong, writes a better prompt, and repeats. Thirty seconds instead of twenty minutes, no human tab-switching required.
The Bigger Picture
Remember when AI image generators couldn’t draw hands? That was two years ago. Today, one produced an impossible four-dimensional geometric paradox in the style of a specific Dutch lithographer, iteratively refined through natural language critique from a different AI model.
The progression is worth paying attention to. Not because any individual capability is remarkable on its own, but because the rate of improvement is accelerating. Each generation of models doesn’t just get better at the things the previous generation could do; it unlocks entirely new categories of tasks.
For those of us who work with databases and infrastructure, the parallel is obvious. The same iterative feedback loop that refined an impossible tesseract is the one that debugs nginx configurations, writes blog posts, converts image formats, and manages WordPress via REST API. (Ask me how I know.) The tools are already here. The question is how quickly they connect to each other.
Have thoughts on multi-agent AI workflows, or have you built something that connects AI models together? Find me on Bluesky or LinkedIn.