Inspiration

Most foldable apps treat the fold as something the interface has to work around.

We wanted to do the opposite.

Don't Squish Me! is a physics puzzle game where the fold itself becomes the controller. Instead of tapping buttons to change the world, you physically fold the iPhone Duo.

Milo, our tiny robot character, reacts to everything you do. Fold the device and gravity changes. Reach tabletop mode and the hinge becomes a launch mechanic. Close the phone too far and Milo literally gets squished.

We wanted to build something that would feel fundamentally different on a normal phone and make the physical form of the Duo part of the game itself.

What it does

The game takes place across both displays of the iPhone Duo.

At 180 degrees, both displays become one continuous world.

As the Duo begins folding, gravity shifts and Milo reacts to the changing angle.

Around 90 degrees, the hinge becomes part of the level itself. A spring positioned around the center activates and launches Milo across the displays.

As the phone approaches the closed state, Milo gets nervous, slides toward the hinge, gets compressed, and asks you not to squish him.

When the Duo is fully closed, the experience continues on the outer display. Milo becomes a small companion where players can see their progress, interact with him, and customize his appearance.

RevenueCat is also a core part of this loop.

Players can unlock new Milo skins and additional adventure content through RevenueCat. Purchases are represented directly inside the game rather than being separated into a generic store. When a player unlocks a new skin, Milo immediately changes appearance on the outer display and inside the game.

RevenueCat entitlements become part of the game state, controlling which cosmetics and additional content are available to the player.

The idea is that folding the phone changes how you play, while RevenueCat changes how your version of Milo and the world evolve.

How we built it

We built the app in Swift using Bitrig and Xcode.

SwiftUI powers the interface and companion screens, while SceneKit powers the 2.5D world, Milo, lighting, particles, collectibles, environmental effects, and physics.

The iPhone Duo hinge angle drives the game state.

We map the live fold angle to gravity, world tilt, background parallax, Milo's expressions, spring behavior, and the squish interaction.

The level itself is designed around the physical hinge rather than treating it as unused space.

RevenueCat is integrated directly into the progression system.

We use RevenueCat offerings and entitlements to determine which Milo skins and adventure content the player owns. After a successful unlock, the entitlement updates the game state and the purchased content appears immediately.

This made RevenueCat feel like part of the game instead of a payment screen added at the end.

Challenges

The biggest challenge was making the game feel truly designed for Duo instead of simply stretching a normal mobile game across two displays.

We had to rethink the hinge completely. Rather than avoiding it, we turned it into the center of the level and a physical input for the game.

Another challenge was making folding immediately understandable.

The player needed to see and feel that the phone was affecting the world, so we connected the hinge to gravity, character expressions, animation, haptics, lighting, environmental movement, and level mechanics.

We also wanted the RevenueCat integration to feel natural.

Instead of adding a separate store that had nothing to do with the game, we connected RevenueCat directly to Milo. Unlocking something changes the character you are already interacting with and carries that state between the outer display and the main game.

With only a few hours to build, we focused on making one level, one character, and one progression loop feel polished rather than trying to build a large game.

What we learned

The most interesting thing we learned is that a foldable device can introduce an entirely new input method.

The hinge is not just a layout constraint.

It can behave like an analog controller.

Once we started treating the physical device as part of the game world, the design became much more interesting.

We also learned that monetization can feel much more natural when it is connected directly to a character and progression system.

RevenueCat allowed us to connect purchases, entitlements, cosmetics, and future content directly to the player's game state.

What's next

We would love to expand Don't Squish Me! with additional worlds where each environment uses the fold differently.

Crystal Caves could use the hinge to redirect light and open hidden paths.

Lava Peaks could use folding to raise bridges and move lava.

Future worlds could introduce portals, moving platforms, new fold mechanics, new Milo abilities, and multiplayer interactions.

RevenueCat would continue to power the progression layer, including new skins, Adventure Packs, and future worlds.

But the core idea stays the same:

You don't just play the world. You bend it.

Built With

Share this project:

Updates

Submission history