Three.js Gravity-Driven Animation with Python Docker
Budget: $30 – $250 USD
I’m building a browser-based WebGL scene that relies on Three.js for all the rendering and a small Python service for asset preparation and data flow. The core of the job is to craft a smooth, interactive animation where every movement is governed by gravity—objects should accelerate naturally, settle, or orbit according to the forces we define. There’s no manual clicking or dragging required from the user; instead, the animation must look alive on its own, reacting only to the physics engine you wire in.
You’ll start by setting up the Three.js stage, loading a handful of simple meshes (think spheres, cubes, or particles) and wiring gravity so the bodies fall, collide softly, and stabilise without obvious jitter. The Python side is straightforward: a script that supplies initial object positions and can be re-run to randomise the scene, served through a tiny Flask or FastAPI endpoint. No heavy backend logic—just clean data interchange in JSON.
I want clean, commented code that I can extend later, plus a short readme explaining how to spin everything up locally. If you have a favourite physics helper library for Three.js, feel free to use it, as long as it keeps the bundle lightweight.
Acceptance criteria
• Scene renders in modern browsers without warnings
• Gravity behaves consistently at 60 fps on a mid-range laptop
• Python endpoint returns positions and launches with a single command
• All source files, build steps, and instructions are included in the final hand-off
You’ll start by setting up the Three.js stage, loading a handful of simple meshes (think spheres, cubes, or particles) and wiring gravity so the bodies fall, collide softly, and stabilise without obvious jitter. The Python side is straightforward: a script that supplies initial object positions and can be re-run to randomise the scene, served through a tiny Flask or FastAPI endpoint. No heavy backend logic—just clean data interchange in JSON.
I want clean, commented code that I can extend later, plus a short readme explaining how to spin everything up locally. If you have a favourite physics helper library for Three.js, feel free to use it, as long as it keeps the bundle lightweight.
Acceptance criteria
• Scene renders in modern browsers without warnings
• Gravity behaves consistently at 60 fps on a mid-range laptop
• Python endpoint returns positions and launches with a single command
• All source files, build steps, and instructions are included in the final hand-off
Related categories:
JavaScript
Python
Android
Software Architecture
HTML5
Game Development
Docker
Three.js
FastAPI
Game Backend/LiveOps