โโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโ โโโโโโโ โโโโโโโ โโโโโโโโ
โโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโ โโโ โโโ โโโ โโโ โโโโโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโโโโโโโโโ
โโโ โโโ โโโ โโโ โโโ โโโโโโโโโโโโโโ โโโโโโโโโโโ โโโโโโโโโโ โโโโโโ
โโโโโโโโโโโโโโโโโ โโโ โโโ โโโ โโโโโโโโโโโ โโโ โโโโโโโโโโโโโโโ โโโโโโโโ
โโโโโโโ โโโโโโโ โโโ โโโ โโโ โโโโโโโโโโโ โโโ โโโ โโโโโโโ โโโ โโโโโโโโ
Cut the Rope (Web Edition) is a faithful recreation of the classic physics puzzle game, built entirely with vanilla JavaScript. Challenge your logic and timing across multiple themed boxes and levels. Feed the adorable Om Nom by cutting ropes, using bubbles, and collecting stars!
- ๐ฎ Pure Vanilla JS โ Custom physics engine built from scratch without external libraries.
- ๐บ๏ธ 12 Challenging Levels โ Spread across 3 unique themed boxes (Cardboard, Fabric, etc.).
- ๐ฌ Realistic Physics โ Verlet integration for rope simulation and gravity effects.
- ๐พ Progress Persistence โ Automatically saves your unlocked levels and stars using
localStorage. - ๐ต Immersive Audio โ High-quality sound effects and background music.
- ๐น Cinematic Intro โ Engaging video introduction to set the scene.
- ๐จ Dynamic UI โ Themed backgrounds that change based on your selected box.
- ๐ฑ Responsive Design โ Optimized for various screen sizes and orientations.
- A modern web browser (Chrome, Firefox, Edge, Safari)
- A local web server (recommended for video and module support)
-
Clone the repository Download the code to your computer using Git:
git clone https://github.com/ebrahimmostafa133/Cut-The-Repo.git cd Cut-The-Repo -
Run with a Local Server (Required for Modules & Video) Since the game uses JavaScript Modules and has an intro video, you cannot just open the
index.htmlfile directly. You need a local server. Here are the easiest ways:- Open the project folder in VS Code.
- Install the "Live Server" extension.
- Click the "Go Live" button at the bottom right corner of VS Code.
| Action | Control |
|---|---|
| Cut Rope | Click and drag (swipe) across a rope |
| Pop Bubble | Click on a bubble to pop it |
| Pause | Click the menu button |
| Restart | Click the restart icon |
- Objective: Deliver the candy to Om Nom's mouth.
- Stars (โญ): Collect up to 3 stars per level to unlock new boxes.
- Ropes: Hold the candy in place. Cut them to release it!
- Bubbles: Lift the candy upwards when it enters them.
- Physics: Use gravity and momentum to swing the candy into stars.
Cut-The-Repo/
โโโ audio/ # Sound effects and background music
โโโ css/ # Modular stylesheets (global, screens, components)
โโโ fonts/ # Custom game fonts
โโโ images/ # Game assets (sprites, backgrounds, UI)
โโโ js/
โ โโโ physics/ # Core physics engine (Verlet, Collisions)
โ โโโ levels/ # Level data and selection logic
โ โโโ objects/ # Game entities (Candy, Frog, Star, Bubble)
โ โโโ states/ # Game state management
โ โโโ storage/ # Progress saving/loading
โ โโโ index.js # Main entry point
โโโ video/ # Intro and cutscene videos
โโโ index.html # Main entry file
- Modular JS: Clean separation of concerns using ES6 modules.
- State-Driven UI: Screen transitions and game states managed centrally.
- Custom Physics: Hand-coded gravity, damping, and constraint satisfaction.
// Example: Rope Constraint Logic
export function ropeLimit(candy, anchor, len) {
const dx = candy.x - anchor.x;
const dy = candy.y - anchor.y;
const dist = Math.sqrt(dx * dx + dy * dy);
if (dist > len) {
const nx = dx / dist;
const ny = dy / dist;
candy.x = anchor.x + nx * len;
candy.y = anchor.y + ny * len;
// ... velocity adjustment logic
}
}- Layered Drawing: Background โ Ropes โ Stars โ Om Nom โ Candy.
- Sprite Animation: Frame-based animations for Om Nom's reactions.
- Responsive Scaling: Viewport-aware canvas resizing.
- JavaScript (ES6+) โ Core logic and physics.
- HTML5 Canvas API โ High-performance 2D rendering.
- CSS3 โ Advanced animations and responsive layouts.
- LocalStorage API โ Persistent user progress.
- Web Audio API โ Dynamic sound management.
This project was developed by:
- โ Implementing Verlet integration for stable rope physics.
- โ Managing complex game states without external frameworks.
- โ Optimizing canvas rendering for smooth 60fps performance.
- โ Designing a modular and scalable codebase for game levels.
- ๐ง Collision Precision: Fine-tuning star and frog hitboxes.
- ๐ง Rope Behavior: Ensuring realistic swinging and tension.
- More Obstacles: traps, air cushions, and moving anchors.
- New Boxes: Magic Box, Valentine Box, and more!
- Global Leaderboard: Compete with players worldwide.
- Mobile Support: Like the OG real game we grew up with
This is a non-commercial, educational project. Any use of game assets is purely out of love and nostalgia. We extend our heartfelt thanks to ZeptoLab for creating such cherished memories.
- ZeptoLab โ For the original "Cut the Rope" inspiration.
- ITI Open Source Track โ For the support and guidance.
- Community โ For the amazing assets and feedback.
ITI Open Source Track - INTAKE 46 โค๏ธ



