Use this tool to test your custom platformer levels with real physics simulation.
- Enter your game's gravity, jump force, and move speed.
- Set character size (width & height).
- Upload or paste a JSON file with your platform layout.
- Use A/D or ←/→ to move, Space/W/↑ to jump, R to reset position.
Expected JSON format:
{
"platforms": [
{ "x": 200, "y": 300, "w": 120, "h": 16 },
{ "x": 450, "y": 240, "w": 100, "h": 16 },
...
]
}
What Do These Numbers Mean?
Gravity (e.g., 1.2)
How fast your character accelerates downward. Higher = falls faster, feels "heavier." This is measured in pixels per frame squared.
- Default: 1.2 (floaty, light feel)
- Try: 0.6 (super floaty, moon-like)
- Try: 2.0 (heavy, snappy)
Jump Force (e.g., 18)
The initial upward velocity when your character jumps. Higher = jumps higher and stays in the air longer. (For all my physics people out there - yes, I know that Force is not the same thing as velocity - "Jump Force" is a standard convention in the Game Dev universe so I'm playing by their rules.)
⚠️ Use POSITIVE numbers! Geometry Kitty handles the direction for you.
- Default: 18 (moderate jump)
- Try: 25 (high jumper)
- Try: 12 (short hops)
Move Speed (e.g., 6)
How fast your character moves left and right (pixels per frame).
- Default: 6 (standard platformer speed)
- Try: 10 (zippy, fast-paced)
- Try: 3 (slow, precise)
Behind The Scenes 🔬
When you hit "Generate Level," Geometry Kitty does some physics math to figure out what your character can actually do:
Max Jump Height = (Jump Force²) ÷ (2 × Gravity)
How high can your character reach at the peak of their jump?
Air Time = (Jump Force ÷ Gravity) × 2
How long are they airborne during a full jump?
Max Jump Distance = Move Speed × Air Time
How far can they travel horizontally while jumping?
Then it uses these calculations and places platforms in the locations specified by your json so you can test out how your platforms will feel in your game!
Coordinate System Note 📐
In most game engines, Y = 0 is at the TOP of the screen, and Y increases as you go DOWN. That's why jumps are "negative" velocity in the code—you're moving to smaller Y values!
Geometry Kitty handles this automatically, so just use positive numbers and let the tool do its magic.
Translating From Your Game 🎮
If you're pulling physics from your own game code, look for these values:
- Global gravity setting (e.g.,
setGravity(1600))
- Jump force/power after any multipliers (e.g.,
12 × 65 = 780)
- Movement speed after multipliers (e.g.,
5 × 50 = 250)
Geometry Kitty works with the final calculated values, not the raw character stats. If your game uses big numbers (like 1600 for gravity), you might want to scale them down proportionally to see them work in this tool!
Tips for Tweaking 💡
- Floaty feel? Lower gravity, increase jump force
- Too fast-paced? Reduce move speed
Experiment! The real-time simulation lets you test your physics instantly. Use A/D or Arrow Keys to move, Space/W/↑ to jump, and R to regenerate.
Remember: These aren't "right" or "wrong" numbers—they're all about the feel you want for YOUR game!