What is Palm Strike: Miami Fight?
Palm Strike: Miami Fight is a free fighting game that runs in your browser. No download. No install. Open miamifight.com and you're on Calle Ocho at sunset, about to catch these hands.
It's pixel art, it's very Miami, and it's a prototype. More on that at the end.
We started on a Tuesday at 9:10 PM ET and had it playable around 1 AM. About 4 hours, start to playable, and $18.80 in fal.ai generations.
A quick word on "original." We mean original characters and an original Miami concept. We generated the art with fal.ai under our direction and then edited it through a lot of QA. Nobody hand-painted these sprites, and we won't pretend they did.
The fighters and the stage
We designed a roster of eight: Doña Chancleta, El Cafetero, Brisa, Kilo, Reina Salsa, Capitán Gator, Patina and Don Yate. Two are playable today.
- Doña Chancleta, "The Original Enforcer." A Cuban grandmother with a flying flip-flop. If you grew up in Miami, you already know the move.
- Kilo, "Wynwood Wildcard." A spray-can fighter straight out of Wynwood.
The stage is Little Havana at sunset on Calle Ocho. It has 3 parallax layers and 6 looping animations: the crowd, the domino players, a rooster, café steam, a neon sign and a palm tree. Stand still for a second and the block keeps moving around you.

How it plays
It's a classic arcade fighter. First to two rounds wins. Health bars and a round timer.
- Move, jump and crouch
- Block by holding away
- Light, heavy and special attacks
- Projectiles
- Meter supers
Play the CPU, or grab a friend and share one keyboard. P1 uses WASD plus J K L I. P2 uses the arrows plus 1 2 3 0. On a touch device, touch controls show up on screen.
Under the hood, the game runs a fixed 60 simulation steps per second with buffered inputs, and it has automated tests. That's the boring part that makes the fun part feel fair.

The sound matters too. There are 8 Cuban and arcade music tracks, 32 SFX, 27 voice lines including an announcer, and crowd ambience. The help screen says it best: "Make yourself at home. Then throw a chancleta."
How we built it
We built this the way we build most things now: AI for speed, people for judgment.
- fal.ai for assets. 208 generations: 137 image, 67 audio, 3 video and 1 3D. The whole fal.ai bill was $18.80.
- Astra on ChatGPT for code. We coded with gpt-6-astra.
- Phaser for the game. Phaser 3.90 on WebGL, written in TypeScript and bundled with Vite.
- Three.js for the cabinet. More on that below.
- Vercel for hosting. Plus Vercel Analytics. The game lives at miamifight.com and game.purplehorizons.io.
Six style tests, one look
We ran 6 style tests and picked 32-bit pixel art. The logo is a lightning banner and a palm tree.
Taste still matters
Here's the honest part. AI got us far, but it didn't get us all the way. We directed the work and ran human QA on the output. Here's some of what we caught:
- A Doña lookalike in the background crowd. Two Doñas is one too many.
- "ROUUND 1." One extra U, right where everyone would see it. Fixed.
- An off-model Kilo walk sheet. Kilo didn't look like Kilo mid-stride.
- A pistol silhouette on the cabinet kick plate. We took it out with the age rating in mind.
We also steered away from a drug-dealer character concept.

We keep learning the same lesson. The tools make a lot of stuff. Somebody still has to decide what's good, what's off, and what should never ship.
Meet your cabinet
This is our favorite detail. Open the cabinet viewer and an interactive 3D arcade cabinet, built in Three.js, opens over the blurred game.
- Drag to rotate it
- Scroll or pinch to zoom
- See a preview of the game on the cabinet screen
The match pauses while the cabinet is open, so you can check out the machine without losing a round.

What's next
Palm Strike: Miami Fight is a prototype: two fighters, one stage.
Next up:
- More characters from the roster
- Full animation sets
- Online multiplayer
Six fighters are waiting on the bench: El Cafetero, Brisa, Reina Salsa, Capitán Gator, Patina and Don Yate. Tell us who you want next.
Build with Purple Horizons
We like building this way: AI doing the heavy lifting, people making the calls. We love doing that with teams.
We run buildathons where teams build with AI. If your team wants in, start at purplehorizons.io/services/buildathon.
The full project write-up is on our work page.
Now go play at miamifight.com. Pick Doña. Throw the chancleta.
Follow along on X: @purplehorizons8 and @giannidalerta.




