Apr 2026 – (Paused)
Airportfolio: 3D Interactive Flight Simulator Portfolio
A toy project exploring Three.js-based 3D portfolios — pilot an airplane through POI markers with autopilot tour and day/sunset/night themes. Development currently paused.
Airportfolio is a toy project exploring what a 3D interactive portfolio built with Three.js could feel like. Instead of scrolling a page, visitors fly an airplane through an airport world and land near colored pins to open portfolio cards.
Features
Manual flight (WASD) or one-key Autopilot mode that tours all entries in sequence. The minimap shows POI positions and the airplane cursor in real time.
World Design
A torus-wrapped 1000 × 1000 unit map with five thematic districts (Education, Research, Projects, Awards, Skills). Fog, sky shader, and lighting all change with the selected theme. Mobile visitors get an automatic autopilot tour.
Technical Details
Sky shader. Sky sphere is rendered with a custom GLSL fragment shader blending three color stops (top / mid / bottom) via power-curve interpolation — no texture, fully procedural. The sphere follows the camera so it's never clipped by the far plane.
Torus world wrap. The map is a 1000 × 1000 unit torus — the airplane teleports seamlessly at ±500 on both axes. Wrapped shortest-path distance is used for POI proximity and minimap rendering so pins never "jump" across seams.
Flight model. Custom multi-phase physics: ground roll → rotation → climb → cruise → landing. Each phase has independent acceleration, drag, and bank-angle curves.
Autopilot. Proportional heading controller that steers toward sequential waypoints, with speed modulated by distance to the target pin — slowing to 35 % throttle inside 25 units so the POI card has time to be read.
Time-aware themes. The world's lighting — sky color, fog density, and ambient glow — shifts automatically based on the visitor's local clock: daytime (6 am–5 pm), sunset (5–8 pm), or night (8 pm–6 am). Pressing T cycles through all three.