- Rony Rabinovitz
- Daniel Danziger
- Make sure Node.js is installed
- Install dependencies (first time only):
npm install
- Start the local web server:
node index.js
- Open your browser and go to http://localhost:8000
- O — Toggle orbit camera (drag to rotate, scroll to zoom)
- 1 — Bowler view
- 2 — Overhead view
- 3 — Pin-end view
- 4 — Side view
This project implements the static HW05 bowling alley infrastructure using THREE.js:
- Lane: approach area, foul line, approach dots, lane arrows, gutters, and pin deck
- Pins: 10 regulation pins in triangular formation with
LatheGeometry, white body, and red neck stripe - Ball: static glossy sphere with three finger holes on the approach area
- Camera & lighting: bowler perspective, orbit controls, directional shadows, responsive resize
- UI: HTML/CSS placeholders for a future scorecard and controls panel (HW06)
- Ball return track on the right side with a returned spare ball
- Seating bench behind the approach area
- Overhead scoring monitor above the lane
- Lane bumpers (raised guards along the gutters)
- Procedural textures — wood grain on the lane, carpet pattern on the approach
- Camera presets — keys 1–4 switch between bowler, overhead, pin-end, and side views
- Finger holes are simplified geometric shapes, not boolean cutouts from the ball mesh
- No physics, ball rolling, pin collisions, aiming, or scoring (reserved for HW06)
- THREE.js r128 loaded from CDN (cdnjs.cloudflare.com)
- OrbitControls vendored locally in
src/OrbitControls.js
Full assignment requirements and grading criteria: bowling_exercise_instructions.html




