Project Name:
Tent Anchoring — Interactive Safety Course & Site Scenario
Course Level:
Level 3+ — simulation-based, custom-engineered
What’s in it:
- Real-time physics simulations
- Working ballast calculator modeled on an industry tool
- 3D branching capstone scenario
- Randomized inspection (no two attempts alike)
- Rule-driven scoring & debrief
- Custom authoring plugin
- Custom 3D graphics & asset pipeline
- AI-voiced narration, WebGL-deployed
Applications Used:
- Godot 4 (GDScript, custom editor plugin)
- Blender (scripted low-poly 3D asset pipeline)
- ElevenLabs (narration)
- Adobe Illustrator & Photoshop (2D illustration, diagrams, UI)
- AI image generation (illustration concepts and icon sets

01 The Problem
Tent installers need to understand physical concepts — soil holding power, angle of tension, lever failure, wind uplift versus ballast weight — that are hard to teach from a slide and impossible to test from a video.
02 The Solution
31 narrated slides across five sections, six simulations, a 12-phase capstone with a scored debrief, and a reusable course-authoring plugin with a visual flow editor, all running in the browser with no installation.
03 Description
I built the course in the Godot game engine instead of a conventional authoring tool. Each physical concept became a live simulation the learner manipulates: change stake depth and watch the soil wedge grow, drag a guy line and watch an under-driven stake lever out, raise wind speed until the ballast fails. The ballast section ends with a working calculator modeled on the tool installers actually use in the field — pick a rigging configuration, set tent dimensions, wind speed and sidewalls, and get a live per-point weight recommendation, so learners see for themselves why a fixed-to-pole setup needs far less ballast than one built out on a plate.
The course closes with a full 3D site scenario: survey a rain-soaked corporate campus, choose a location against four customer constraints, handle a utility-locate conflict, anchor the tent, then walk the perimeter to catch randomly generated installer faults. Every zone, rule, fault and score lives in JSON, so the scenario can be re-authored without code.










