SPECULATIVE DESIGN · ZOE · 2026-10
Ride the sky with your body
Sky Lane is a speculative design project: SL-1, a hoverboard that flies point to point on autopilot, and a set of rules that lets every aircraft share the sky in order. The rider fine-tunes or takes over by shifting their centre of gravity; the board reads the way ahead, avoids traffic and lands on its own.
Two layers. The body layer: how a person can safely control a hoverboard with the most natural body movements. The system layer: how thousands of boards can share the sky without collisions, chaos or disturbance. The HUD and rule feedback connect the two: rules are not written on paper; they are felt through the body.
Discover more →01Overview
Two layers, one argument
The body layer governs control, the system layer governs order, and the HUD turns rules into bodily sensation.
| Layer | Question | Core outputs |
|---|---|---|
| Body Layer | How can a person safely control a hoverboard with the most natural body movements? | Posture-to-action mapping, personal calibration, novice stabilisation, fail-safes |
| System Layer | How can thousands of boards share the sky without collisions, chaos or disturbance? | Height layers, lanes, junction protocol, right-of-way, take-off and landing, no-fly zones, AI avoidance, signage and light signals, HUD |
02Product SL-1
One board, everywhere
Every image, 3D model and manual illustration shows the same SL-1.
SL-1 Board Design Spec
The board in every image, 3D model and rulebook illustration must be the same board.
A stone smoothed by water, not a skateboard.
Dimensions
80 × 56 × 7 cm (W × D × H). The board travels along its short axis, with the forward long edge as the nose; the rider stands with feet side by side, facing the direction of travel.
SL-1 orthographic views · 1:25 · top / front / side / bottom · W 80 × D 56 × H 7 cm · recessed ducted fans at the four corners, Ø18 cm · white nose light · orange tail light · sky-blue side status lights
| Item | Spec |
|---|---|
| Model | SL-1 (Sky Lane standard personal board) |
| Form | A rounded "pebble" platform: a rounded rectangle in plan, slightly narrower front and rear; the side edges thin out towards the underside |
| Top surface | Matte warm-white composite shell (one shade darker than #F4F1E8); two soft sky-blue foot pads (rounded, 20 × 30 cm, side by side, 20 cm gap, 40 cm centres, roughly a shoulder-width stance) |
| Underside | Four recessed ducted fans at the corners, approx. Ø18 cm, with thin deep-navy rims; no visible nozzles, no flames |
| Lighting | Front edge: thin white light bar (headlight); rear edge: thin orange light bar (tail and brake light); left and right edges: thin sky-blue light lines (status lights that follow the light signals) |
| Hover appearance | At low altitude, a soft shadow and very faint air disturbance below; at altitude, no effects |
| Rider gear | Rounded helmet (warm white, one orange stripe); simple matte clothing (warm white / sand / light blue); couriers carry a warm-white delivery box (one orange stripe) |
| Variants | Emergency board: same form, orange-and-blue diamond pattern on top plus a long, thin orange light bar at the front; Seat module: a low cushioned seat with lumbar support that clips into the centre of the board |
| 3D model | Built in Blender from a rounded cube and 4 cylindrical recesses (about 2 hours); the demo and the images share one scale |
03Problem
Frameworks built for machines
Existing frameworks are designed for machines and operators; they lack rules centred on the body.
Context
Urban Air Mobility (UAM) has moved from science fiction into policy documents. The FAA's Urban Air Mobility Concept of Operations (UAM ConOps) envisages fixed UAM corridors above cities, traffic management supported by third-party service providers, and strategic deconfliction between operators through cooperative rules.
The EU's U-space framework (built on Implementing Regulation (EU) 2021/664) designates U-space airspace for drones and requires services such as network identification, geo-awareness, flight authorisation and traffic information.
Both frameworks are designed almost entirely for "aircraft and operators", not for "an ordinary person standing on a board and steering with their body". How does a rider know which layer they are in? Who yields at a junction? How are rules understood through the body?
FAA UAM ConOps and EU U-space are cited at a conceptual level only; Sky Lane is speculative design and claims no compliance with any specific provision.
Problem Statement
As personal flight becomes an everyday way to commute, existing frameworks remain centred on machines and operators. They lack a body-centred control method and an intuitively legible language of rules.
Sky Lane asks whether the body's centre of gravity as the control interface, and layered lanes plus a visual grammar as the rule interface, can let ordinary people share the city sky safely and calmly.
| ID | Research question | How it is answered (without external participants) |
|---|---|---|
| RQ1 | Can a camera-estimated centre of gravity control a virtual hoverboard within acceptable latency and error? | Self-test protocol: route completion time, lateral deviation, false triggers, latency measurement |
| RQ2 | Do personal calibration and novice stabilisation lower the cost of learning? | Self-test data compared across two conditions: "no calibration / fixed sensitivity" vs "calibration + adaptation" |
| RQ3 | Can speed-based layers, lanes and a junction protocol keep conflicts manageable at high density? | AI rider stress test: conflicts, near misses, collisions and delays at different densities |
| RQ4 | Can a limited visual grammar (4 colours, a few shapes, a few light rhythms) cover every rule state without confusion? | Rule–sign coverage matrix + AI-assisted heuristic evaluation |
Design Principles
P1
Body before screen
What can be expressed through posture needs no button; feedback the body can feel (automatic slowing, lane snapping) is not left to text alone.
P2
Safe by default
Any uncertain state (lost tracking, conflicting rules, unclear signal) falls back to hovering in place. Hover is the system's brake.
P3
Layers make order
Altitude separates traffic of different speeds, rather than the rider's reflexes. Complexity is handled by spatial structure, not by the human brain.
P4
Legible over complete
Fewer, clearer rules. 15 signs, 4 colours and 3 light rhythms are enough to cover every state.
P5
Calm technology
Visually quiet, warm and light, avoiding cyberpunk tension. The system only gets "loud" (signal orange) when it must.
P6
Design for the most vulnerable
Novices, seated riders and people in emergencies come first, and the rules are more forgiving towards them.
04Personas & Scenarios
Three riders, three routes
Emergency yielding must be one coordinated, system-level action, not a split-second judgement.
These are proto-personas, built from published reporting and research on urban commuting, on-demand delivery and emergency response, plus reasoning. They have not been validated through interviews.
A · Commuter
Lin Xia
- Profile 29, product manager, lives on the city's edge, commutes 14 km across districts daily
- Experience 3 months, basic licence, flies mainly in the L2 commuter layer
- Goals On time, not tired, not tense the whole way; time to think about the day's meetings
- Pain points Unsure who goes first at junctions; lower layers are crowded at rush hour, but she is wary of climbing to the express layer
- Physical traits Sedentary, average core strength; some mornings carries a laptop bag that shifts her centre of gravity back
- Design implications Steady cruise assist, a clear junction rhythm, centre-of-gravity calibration with a backpack
B · Courier
Ajie
- Profile 34, on-demand delivery rider, 40+ orders a day
- Experience 2 years, courier licence, cleared for the L3 express layer
- Goals Fast, accurate, no penalties; fewer decisions on the way
- Pain points Frequent take-offs and landings; detours around no-fly zones (schools, hospitals) cost time; rules change with the weather
- Physical traits Skilled, large movements; carries a delivery box that raises his centre of gravity
- Design implications Efficient take-off and landing, early no-fly-zone warnings, instant weather-rule alerts, more responsive control for skilled riders
C · Emergency responder (and the riders who yield)
Dr Zhou
- Profile 41, emergency physician, flies an emergency hoverboard fitted with emergency lights
- Goals Reach the scene as fast as possible without endangering other riders
- Pain points Ordinary riders misread yield requests, react slowly and swerve unpredictably
- Design implications Emergency priority must be system-level: advance broadcast and one standard yield manoeuvre (shift right + descend half a layer + hover), not each rider's split-second judgement
| Scenario | What happens |
|---|---|
| S1 Rush-hour Commute | 07:50: Lin Xia takes off from the rooftop pad of her housing estate, climbs through the L1 slow layer and merges into the L2 commuter layer at the climb spiral. The HUD shows a roundabout junction 400 m ahead. She leans slightly forward to accelerate to 30 km/h, and the system holds a 2-second gap automatically. Before the junction, its light ring shifts from steady blue to a slow orange pulse, and she follows the ring lane to turn right. An AI rider merges from the right; the HUD marks it with an orange arc, and Lin Xia leans back slightly to slow and yield. 08:12: she lands on her office roof, guided step by step by the HUD. |
| S2 Rainy Delivery | 14:30: light rain begins, and the system broadcasts "Rain rule: speed limit −30% on all layers". Ajie is in the L3 express layer; his HUD speed cap drops from 50 km/h to 35 km/h. His route crosses a primary school's school-hours no-fly zone; the HUD shows a circular prohibition sign 30 m out and offers a detour. Before arriving, he requests a pad slot at L1 and is assigned pad 2. He lands by the hover–confirm–vertical descent sequence and clears the pad within 20 seconds. |
| S3 Emergency Emergency | Dr Zhou activates emergency mode. The system declares an emergency corridor along 600 m of lane ahead of her. Every rider in the corridor (including the player) sees fast orange flashes and direction arrows at the HUD edge, prompting the yield manoeuvre: shift right to the lane edge, descend 3 m, hover. AI riders comply at once; if the player has not complied within 3 seconds, the system takes over and completes the yield, then shows "Yielded automatically". Once the emergency board has passed, the lane lights return to steady blue and riders resume cruising one by one, with staggered restarts so they do not all accelerate at once. |
Scenario coverage of system functions · ● Core showcase ○ Present, not the focus+ Expand− Collapse
| System function | S1 Commute | S2 Delivery | S3 Emergency |
|---|---|---|---|
| Calibration and body control | ● | ● | ● |
| Height layers and transition layers | ● | ● | ○ |
| Lanes and following distance | ● | ● | ● |
| Junction protocol | ● | ○ | ○ |
| Take-off and landing | ● | ● | |
| No-fly zones | ● | ||
| Weather rules | ● | ||
| Emergency priority and system takeover | ● | ||
| AI avoidance | ● | ● | ● |
05Decision Log
Why this, not that
Every decision states why, and why not the alternatives.
| # | Decision | Rationale | Rejected alternatives and why |
|---|---|---|---|
| DL1 | Read the body with a standard webcam + MediaPipe Pose | Zero hardware cost, runs in a web page; in the prototype it stands in for the production board's foot-pad pressure sensing | Kinect / depth camera: hard to source, cannot be distributed on the web; phone gyroscope: measures a single point, cannot express postures such as "arms spread"; balance-board hardware: has to be built, beyond 12 weeks |
| DL2 | Control signals use the centre of gravity (CoG) offset from the calibrated pose, not absolute position | Stance, height and distance from the camera differ for everyone; relative values are personalised by nature | Absolute coordinate thresholds: fail with a different person or a single step aside |
| DL3 | Lean forward / back uses multi-signal fusion (shoulder drop + apparent torso shortening + head moving forward) | A front-facing camera cannot see depth well; any single signal is noisy | Have users stand side-on: side lean becomes invisible; z-depth estimate only: MediaPipe's depth estimate is unstable |
| DL4 | Hover is the default safe state | The safest thing a hoverboard can do is stay in place; follows Principle 2 | Hold the last command on lost tracking: could keep accelerating out of the lane; automatic landing: there may be streets and pedestrians below |
| DL5 | Arms spread = hover lock | Spreading the arms is the instinctive balancing reflex when losing balance; it already means "steady" | Hand raised = stop: easily confused with everyday gestures; voice commands: unreliable in noisy settings and exhibition halls |
| DL6 | Height layers by speed, not by direction | Speed differences are the main source of rear-end and other conflicts; similar speeds within a layer mean fewer conflicts | Layers by direction (aviation's semicircular rule): city street grids have too many directions, so layers would multiply; completely free flight: uncontrollable at high density |
| DL7 | Lanes run above streets, at least 10 m from building façades | Privacy (no flying past windows), safety (a fall lands in the street, not a rooftop or courtyard), easy navigation (existing mental map of the city) | Straight shortest paths: would cross over homes; low social acceptance |
| DL8 | Junctions use vertical separation + a turning roundabout | Straight-through traffic is split by height within the layer and never waits; only turning boards enter the roundabout | Traffic lights: hovering in place wastes energy and causes queues; roundabout only: saturates at high density |
| DL9 | Right-of-way is a clear priority list, keeping aviation's "give way to the right" convention | Predictable; consistent with real aviation practice and explainable | Right-of-way negotiated by AI in real time: unpredictable and unlearnable for human riders |
| DL10 | Emergency yielding is one standard manoeuvre + system takeover | Chaotic, improvised evasion is more dangerous than not yielding | Prompt without takeover: slow riders block the way |
| DL11 | Violation feedback is graduated (prompt → warning → speed limit → guided landing → penalty points) | Education before punishment; forgiving towards novices | Immediate fines / points: would make the system feel punitive and hostile in a speculative design |
| DL12 | The visual language is light, 4-colour, like an architectural model | — | Dark + neon: visual cliché, and poorly legible in a rulebook |
| DL13 | Signs follow "shape = category, colour = urgency" | Shape reads first at distance, then colour; distinguishable for colour-blind users | Colour-only coding: poor accessibility |
| DL14 | AI riders are rule-based agents + conflict prediction, not trained with machine learning | Explainable, debuggable, achievable within 12 weeks; the rules themselves are the object of study | Reinforcement-learning agents: demand heavy compute and expertise, and their behaviour cannot be explained |
| DL15 | Validate through self-testing + simulation + expert-style review, rather than pretending to have user research | The most honest and structured option under the constraints | A casual try with friends written up as "user testing": dishonest and does not hold up to scrutiny |
| DL16 | Autopilot by default; the body fine-tunes and takes over | 3D air traffic demands reaction times beyond human ability, and autopilot ensures safety; body control keeps the intuition and joy of riding | Fully manual: conflicts uncontrollable at high density; fully autonomous with no body input: loses the product's core experience |
06Control Spec
Steer with your centre of gravity
Steer by the centre of gravity's offset from the calibrated pose; whenever in doubt, hover.
The production board estimates the centre of gravity with a foot-pad pressure array + IMU; the interactive prototype simulates the same signal with camera pose estimation. The thresholds below are for the prototype.
Prototype input: camera pose estimation
MediaPipe Pose Landmarker (@mediapipe/tasks-vision) outputs 33 body landmarks per frame, each with x and y (0–1 coordinates relative to the frame), z (relative depth, unstable) and visibility (0–1).
Scale normalisation: every distance is divided by the calibrated shoulder width (SW) or torso length (TL = distance from shoulder midpoint to hip midpoint), so thresholds stay the same whether the rider is near or far, tall or short.
Centre of gravity (CoG): a weighted average of the shoulder midpoint (0.4) and hip midpoint (0.6). Not biomechanically exact, but stable enough for side lean and crouch.
Landmarks · index · use+ Expand− Collapse
| Landmark | Index | Use |
|---|---|---|
| Nose | 0 | Head moving forward (secondary lean-forward signal) |
| L / R shoulder | 11 / 12 | Top of torso, side lean, shoulder width (scale reference) |
| L / R elbow | 13 / 14 | Arms-spread detection |
| L / R wrist | 15 / 16 | Arms-spread detection |
| L / R hip | 23 / 24 | Bottom of torso, crouch detection, CoG reference |
| L / R ankle | 27 / 28 | Standing reference (unused in seated mode) |
| Pose | What the body does | Detected signal | Trigger onset | Full scale | Maps to |
|---|---|---|---|---|---|
| Lean forward | Upper body tilts forward, as if stepping ahead | Weighted sum of three cues: shoulders drop from the calibrated position + torso shortens in frame + nose moves forward | Index > 0.10 | 0.35 | Accelerate (0 → current layer's speed limit) |
| Lean back | Weight shifts back, upper body tilts slightly back | Opposite of lean forward; torso lengthens, shoulders rise | Index > 0.08 | 0.30 | Decelerate (hovers at 0, never reverses) |
| Lean left | Upper body tilts left | Shoulder midpoint offset left of hip midpoint | > 0.08 × SW | 0.35 × SW | Turn left (turn rate decreases with speed) |
| Lean right | Upper body tilts right | As above, to the right | > 0.08 × SW | 0.35 × SW | Turn right |
| Crouch | Bend the knees | Hip midpoint lower than in the calibrated stance | > 0.12 × TL, 0.4 s | 0.35 × TL | Descend (layer changes only in transition zones or at pads) |
| Rise | Stand tall, rise slightly onto the toes or lift the chest | Hip midpoint higher than in the calibrated stance | > 0.06 × TL, 0.4 s | 0.15 × TL | Climb (same restriction) |
| Arms out | Raise both arms out to the sides | Wrist distance > 1.6 × SW, with both wrists between shoulder and hip height | Hold 0.5 s | — | Hover lock; spread again for 0.5 s to release |
| Neutral | Stand naturally | Every index inside its dead zone | — | — | Hold current speed (with cruise assist on) or slow gently (novice mode) |
Mirroring: the code always uses the rider's own left and right, and the HUD body figure is shown from the rider's viewpoint. Leaning back stops at 0 and never reverses, since flying backwards means going against traffic; to reverse, hover → turn 180° → go forward, permitted only in L1.
Thresholds, dead zones and smoothing+ Expand− Collapse
| Axis | Dead zone | Note |
|---|---|---|
| Forward / back | ±0.06 | Below this counts as neutral |
| Left / right | ±0.05 × SW | Roughly the range of natural body sway |
| Up / down | ±0.05 × TL | Breathing and slight knee flex |
Latency budget: total camera-to-screen latency target < 150 ms (pose estimation approx. 30–60 ms + filtering approx. 30 ms + rendering approx. 16 ms).
- Response curve From the dead zone to full scale, an ease-in curve: output = input to the power of 1.6. Novice mode uses 2.0 (steadier), expert mode 1.3.
- Hysteresis Discrete actions use an entry threshold above the exit threshold: crouch engages at 0.12 × TL and releases only at 0.08 × TL, preventing jitter at the boundary.
- Smoothing One Euro Filter (Casiez et al., 2012): stronger filtering during slow movement, lower latency during fast movement. Initial parameters minCutoff = 1.0 · beta = 0.02 · dCutoff = 1.0, tuned by self-testing. Fallback: EMA (α = 0.25).
Calibration Flow · novices need to read no instructions+ Expand− Collapse
| Step | On screen | Rider action | System records | Duration |
|---|---|---|---|---|
| C0 Framing | Body outline + "Step into the frame" | Step back until the whole body (upper body in seated mode) is in frame | Number of landmarks with visibility > 0.7 | 5–15 s |
| C1 Neutral stance | Figure icon + 3-second countdown ring | Stand naturally and relax | Neutral shoulder midpoint, hip midpoint, SW, TL (3-second mean) | 3 s |
| C2 Comfortable side lean | Arrow prompt "Lean left as far as is comfortable", then right | Lean left and right once each | Personal maximum comfortable side offset | 6 s |
| C3 Comfortable fore-aft lean | As above | Lean forward and back once each | Personal fore-aft range | 6 s |
| C4 Crouch | "Crouch gently" | Crouch once | Personal crouch depth | 3 s |
| C5 Arms out | "Spread your arms, hold steady" | Hold arms level for 1 second | Personal maximum wrist distance | 2 s |
| C6 Test flight | A floating board and a ring target | Move the board into the ring 3 times using the body | Completion time, as the basis for initial sensitivity | 15–20 s |
Personal mapping
The calibrated personal comfortable maximum maps to 85% of full scale: reaching 85% of one's comfortable range gives full output. The default thresholds in the mapping table are fallbacks when uncalibrated.
AI adaptive sensitivity
- Saturation At full scale more than 30% of the time within 10 seconds → full-scale threshold lowered by 10%
- Never used Never above 40% of full scale within 60 seconds → threshold raised by 10%
- ≤ 10% per change, at most once every 20 seconds; the HUD shows "Sensitivity adjusted"
Novice stabilisation · first 5 minutes or first 3 flights
- Speed capped at 70% of the current layer's limit
- Lane snapping: returns to the centreline when steering is released
- Auto-levelling: visual bank angle at most 15°
- Layer changes need an extra 0.4 s hold to confirm
- Earlier deceleration in conflicts (warning distance × 1.5)
| Trigger | System response | HUD feedback |
|---|---|---|
| Visibility < 0.5 for 0.3 s | Input frozen in the dead zone; gentle deceleration begins | Body figure greys out; yellow edge prompt "Can't see you" |
| Tracking lost > 1.0 s | Auto-hover, holding current altitude and shifting to the lane edge to clear the main line | Slow orange pulse, "Auto-hover on" |
| Tracking lost > 10 s | Hazard lights on; requests a guided landing at the nearest pad | Map shows the nearest pad and estimated time |
| Two people in frame | Locks onto the calibrated person nearest the frame centre; hovers if unsure | "Multiple people detected" |
| Single-frame jump > 0.5 × SW | Treated as a detection error; frame discarded | None |
| Tab loses focus / < 15 fps | Auto-hover | "Low performance, hovering" |
| All axes at full scale at once | Treated as loss of balance; hover lock engages | "Steadied" |
Recovery: once tracking returns, the rider must hold a neutral stance for 1 second before auto-hover releases, so a leftover posture cannot launch the board.
Seated Mode · wheelchair users, riders with limited lower-limb mobility, exhibition and desk demos+ Expand− Collapse
| Action | Standing | Seated |
|---|---|---|
| Accelerate | Lean forward | Lean the upper body forward in the chair (shoulder drop + head forward only) |
| Decelerate | Lean back | Lean against the backrest |
| Turn | Side lean | Tilt the shoulders left or right (threshold lowered to 0.06 × SW) |
| Descend | Crouch | Press one hand down (wrist below hip, held 0.5 s) |
| Climb | Rise | Raise one hand (wrist above shoulder, held 0.5 s) |
| Hover lock | Arms out | Arms out (same) |
Other accessibility
- Keyboard / gamepad fallback WASD or arrow keys + Space (hover) + Q/E (climb / descend); also for quick trials and debugging
- One-sided mode Hover and climb / descend with one arm only
- Colour-blind safe Every state is encoded by shape and rhythm as well
- Reduced movement Turn on cruise assist and move only to make changes
- Privacy Camera frames are processed locally in the browser and never uploaded; the demo's start page states this clearly
07Rules System
Layers make order
Height layers by speed hand complexity to spatial structure, not to the human brain.
The source text for the visual rulebook and the parameter table for the demo's rule engine. All values are design assumptions, implemented in the demo at 1:1 in metres. Heights are above ground level (AGL); buffer bands separate the layers, where cruising is not allowed and crossing is permitted only in transition zones.
Layer coding: L1 dotted · L2 thin solid · L3 double solid · E orange dashed · L4 thin grey, used consistently across the demo, rulebook and AI images
| Layer | Name | Height AGL | Speed | Users | Special rules |
|---|---|---|---|---|---|
| L0 | Pad | 0–5 m | 0–6 km/h | Everyone, within pad areas only | Vertical take-off and landing only; horizontal movement limited to aligning on the pad |
| — | Buffer | 5–10 m | — | — | No stopping |
| L1 | Slow | 10–20 m | 5–20 km/h | Novices, visitors, short trips, older riders, seated riders | The only layer allowing U-turns and sightseeing hovers; 12 km/h limit near buildings |
| — | Buffer | 20–30 m | — | — | Crossing permitted inside climb spirals |
| L2 | Cruise | 30–45 m | 20–35 km/h | Everyday riders with a basic licence | 2 lanes each way; minimum speed 20 km/h (slower riders must drop to L1) |
| — | Buffer | 45–60 m | — | — | As above |
| L3 | Express | 60–80 m | 35–50 km/h | Advanced / courier licence holders | 2 lanes each way; few junctions, mainly along arterial roads; closed to novice mode |
| E | Emergency | 85–95 m | Unrestricted (≤ 80 advised) | Emergency boards only | Normally empty; in an emergency, boards can drop straight into an emergency corridor on any layer |
| L4 | Freight | 100–120 m | Managed by the drone system | Autonomous delivery drones | Closed to passenger hoverboards |
Minimum speed: a floor on L2 effectively sends slower riders down, keeping the speed spread within any layer to about 15 km/h.
Lane Geometry+ Expand− Collapse
| Parameter | Value | Note |
|---|---|---|
| Lane width | 3.8 m (rounded to 4 m) | Board width 0.8 m (the rider's approx. 0.5 m shoulders fall within it) + approx. 1.5 m margin each side = 3.8 m, rounded to 4 m in the design |
| Lane depth | 6 m | Lets riders drift slightly up and down within the lane |
| Lanes per direction | L1: 1; L2, L3: 2 | Outer slow lane, inner overtaking lane |
| Median strip | 3 m | A thin dashed orange line in the HUD; no crossing |
| Distance from façades | ≥ 10 m | Privacy and safety; on L1 can drop to 6 m along shopping streets |
| Traffic side | Keep right | Matches ground traffic (the example city drives on the right) |
| Following gap | 2 s (novices 3 s) | Time-based, so the gap grows with speed |
| Minimum turn radius | 6 / 15 / 30 m | L1 / L2 / L3, prevents sharp turns |
| Overtaking | Left side only | Return right afterwards; the overtaken rider must not accelerate |
| Climb spiral | Every ~600 m, Ø40 m | The only route between layers; climb on the outer ring, descend on the inner |
Junction protocol · vertical separation + turning roundabout
- 1 Through split 150 m before the junction, the layer splits into upper and lower halves: north–south through traffic takes the upper half (e.g. 39–45 m on L2), east–west the lower half (30–36 m). They never cross, so through traffic never waits.
- 2 Turning roundabout Turning boards enter a right-hand turn lane 100 m before the junction and merge into the ring lane at mid-layer (50 m diameter, one-way anticlockwise).
- 3 Entry rule Traffic in the ring has priority; steady blue light ring = merge, slow orange pulse = slow and watch, fast orange flash = stop and hover.
- 4 Exit Return to the matching through half-layer; full-layer lanes resume after 150 m.
- 5 L3 Very few junctions, fully grade-separated; to turn, descend to L2 first.
- 6 L1 Small roundabouts (24 m diameter), no vertical split.
State machine: APPROACH → SPLIT → YIELD_CHECK → IN_RING → EXIT → CRUISE
Right-of-way priority · lower number goes first; the lower-priority party yields
| Rank | Who | Note |
|---|---|---|
| 1 | Emergency board on a mission (emergency lights on) | Everyone must perform the yield manoeuvre |
| 2 | Rider in failsafe or distress | Cannot manoeuvre; others route around |
| 3 | Rider taking off or landing (inside the cone) | Those inside the cone have priority |
| 4 | Rider already in the roundabout or junction | Riders waiting to merge yield |
| 5 | Rider cruising in the layer | Priority over those changing layer or merging |
| 6 | Rider merging or changing layer | Must find a gap before entering |
| 7 | Equal rank | The rider from the right has priority |
| 8 | Head-on encounter | Both shift to their right |
| 9 | Overtaking | The overtaken rider has priority; the overtaker passes on the left with ≥ 2 m lateral clearance |
Novice marker: a slow blue flash on the tail; nearby riders keep 1.5 × the usual gap. Not higher right-of-way, but a larger safety bubble.
Take-off and landing · pad Ø8 m, thin orange ring; cone 15 m high, Ø20 m at the top; 2–4 pads per station+ Expand− Collapse
| Landing | Action | Rule |
|---|---|---|
| 1 Request | Pad requested automatically 500 m from the destination | If none is free, wait at an L1 holding point |
| 2 Approach | Enter the top of the cone along L1 | ≤ 10 km/h |
| 3 Hover confirm | Hover 2 s at the cone top; the HUD shows the pad and descent line | Pad light ring steady blue |
| 4 Vertical descent | Triggered by crouching, 0.5–1.0 m/s | Locked to the cone axis; offsets > 1 m corrected automatically |
| 5 Touchdown | From 0.3 m, automatic soft descent to contact | Board lights change to white breathing |
| 6 Clear pad | Step off and leave the pad within 20 s | On timeout the pad light flashes fast orange and the pad is locked |
Take-off: step on → calibration check (recalibrate if > 24 hours since the last) → request a slot → pad light steady blue → rise / raise a hand to climb vertically to the cone top (1 m/s) → find a gap and merge into L1 (priority 6)
No-fly Zones+ Expand− Collapse
| Zone | Type | Active | Extent | Behaviour |
|---|---|---|---|---|
| Schools | Time-restricted no-fly | School days 07:00–18:00 | Campus boundary + 30 m, from ground to the top of L3 | Automatic detour; may pass high, below L4 (L3 only, no lower than 60 m) |
| Hospitals | Permanent no-fly + medical corridor | 24 h | Hospital grounds + 50 m | Only emergency boards and holders of a medical access permit, via the medical corridor |
| Government and critical infrastructure | Permanent no-fly | 24 h | Defined by the city | Hard fence, no entry |
| Major events | Temporary no-fly | 2 hours before and after | Venue + 100 m | Published 24 hours ahead; navigation avoids it automatically |
| Parks and water | Height and speed limits | 24 h | Airspace above the area | L1 only, 12 km/h limit, to reduce noise |
| Residential windows | Privacy distance | 24 h | 10 m from the façade | No approach on any layer |
Geofence · alert ring
60 m60 m from the boundary: the HUD shows the matching sign and navigation reroutes.
Geofence · warning ring
30 m30 m from the boundary: slow orange pulse, board speed automatically cut to 50%.
Geofence · hard boundary
0 mThe board steers itself along the boundary and cannot cross it (a "soft wall"). This follows the U-space idea of geo-awareness: know in advance where you cannot fly, instead of being penalised afterwards.
Weather rules · a weather banner slides in at the top of the HUD and takes effect after a 10-second countdown+ Expand− Collapse
| Level | Conditions (example thresholds) | Rule changes |
|---|---|---|
| W0 Clear | Wind < 8 m/s, visibility > 2 km | Normal |
| W1 Light rain / moderate wind | Light rain, or wind 8–12 m/s | Speed limit −30% on all layers; following gap +1 s; novice mode enforced |
| W2 Heavy rain / strong wind | Heavy rain, or wind 12–15 m/s | L3 closed; L2 limited to 25 km/h; advanced licence holders only |
| W3 Fog | Visibility < 300 m | L3 closed; all boards on full lights; every junction routed through the roundabout |
| W4 Thunderstorm / gale | Lightning, or wind > 15 m/s | Citywide grounding; airborne riders guided by the system to the nearest pad |
| Night | After sunset | Full lights mandatory; L1 limited to 15 km/h; pads illuminated |
Emergency Priority
- 1 The emergency board creates an emergency corridor 600 m ahead along its route (8 m wide, on the side next to the central median).
- 2 Riders in the corridor perform the standard yield manoeuvre: shift right to the outer lane edge → descend 3 m → hover.
- 3 For anyone who has not complied within 3 seconds, the system takes over and completes it (the HUD shows "Yielded automatically").
- 4 Emergency boards can drop from layer E into any layer; riders within 200 m either side of the entry point yield in advance.
- 5 The corridor clears 5 seconds after the board passes; riders resume in order, staggered 1 s apart, to prevent rear-end collisions.
- 6 Emergency board at a junction: every roundabout entry flashes fast orange; riders in the ring leave at the nearest exit and hover.
Violations and feedback · graduated+ Expand− Collapse
| Level | Example triggers | System feedback |
|---|---|---|
| F1 Prompt | > 1.5 m off centre; speed near the limit | Light HUD prompt; lane lines brighten |
| F2 Warning | Crossing into the median; speeding > 10%; following gap < 1 s | Slow orange pulse + short tone |
| F3 Speed limit | 3 × F2 within 10 minutes | Speed cap lowered to the layer minimum for 5 minutes |
| F4 Guided landing | Attempted entry into a hard no-fly zone; emergency yield not performed and takeover impossible | System takes over and guides the board to the nearest pad |
| F5 Penalty points | F4 or repeated F3 | Licence points (the "safety score" in the demo) |
Safety Score: starts at 100 · F2 −5 · F3 −10 · F4 −25 · collision −30; also one of the self-test metrics
Rule–sign–light coverage matrix (excerpt) · every rule state has at least two encodings; the basis for evaluating RQ4+ Expand− Collapse
| Rule state | Sign | Light signal | HUD state |
|---|---|---|---|
| Layer speed limit | S02 Layer speed-limit sign | — | H1 Cruise |
| Climb spiral | S05 Climb spiral | Blue chaser light rising on the outer ring | H2 Layer change |
| Roundabout merge | S07 Roundabout | Entry light ring: blue / slow orange / fast orange | H3 Junction |
| No-fly zone | S09 / S10 | Slow orange pulse at the boundary | H5 Warning |
| Take-off and landing | S12 Pad | Pad light ring | H4 Landing |
| Emergency yield | S14 Emergency corridor | Fast orange flash + directional chaser | H6 Emergency yield |
08AI Collision Avoidance
Look, predict, yield
Predict conflicts 4 seconds ahead, then yield by right-of-way with the lowest-cost manoeuvre.
The same algorithm runs on every SL-1 (onboard, with input from cameras, radar and V2X) and drives the AI riders in the prototype.
Every 0.1 s · each AI rider and the player's assist system
- Perceive Every board within 80 m around and 10 m above or below.
- Predict Assuming constant speed and heading, compute the time of closest approach within the next 4 seconds (TCPA) and the distance at that moment (DCPA).
- Judge A conflict exists when that distance is below the safe radius (3 m, novices 4.5 m) and TCPA is within 4 seconds.
- Decide By the right-of-way list, the lower-priority party yields; at equal rank, the rider from the right and the rider being overtaken have priority.
- Resolve In order of cost: slow down → shift laterally within the lane → move to another lane in the same layer → hover → change layer (only inside a climb spiral or in an emergency). Choose the first manoeuvre that removes the conflict.
- Recover 2 seconds after the conflict clears, return smoothly to the original lane and target speed.
Rule-based agents + conflict prediction: easy to explain and debug; velocity obstacles / ORCA could serve as an optional comparison.
Pseudo-code
every 100 ms, for each rider R:
neighbors = riders within 80 m horizontally and 10 m vertically of R
conflicts = []
for each N in neighbors:
relPos = N.position - R.position
relVel = N.velocity - R.velocity
if |relVel| < 0.01:
tcpa = 0
else:
tcpa = - dot(relPos, relVel) / dot(relVel, relVel)
if tcpa > LOOKAHEAD: continue # LOOKAHEAD = 4 s
tcpa = max(tcpa, 0) # already diverging -> now
dcpa = | relPos + relVel * tcpa |
safeR = SAFE_RADIUS(R) + SAFE_RADIUS(N) # 1.5 m each, beginner 2.25 m
if dcpa < safeR:
conflicts.append({N, tcpa, dcpa})
sort conflicts by tcpa (most urgent first)
for each C in conflicts:
if mustYield(R, C.N): # right-of-way table
action = firstWorking([
slowDown(R, toAvoid=C),
shiftWithinLane(R, side=RIGHT, max=1.5 m),
changeLaneSameLayer(R),
hover(R),
changeLayer(R) if R.inSpiral or EMERGENCY
], test = predictedDcpa(action) >= safeR)
R.apply(action); log("YIELD", R, C.N, action)
break
if no conflicts for 2 s:
R.recoverTo(laneCenter, targetSpeed)
function mustYield(R, N):
if priority(R) != priority(N): return priority(R) > priority(N) # larger number = lower priority
if headOn(R, N): return true # both shift right
if overtaking(R, N): return true # overtaker yields
if N is on R's right: return true # right-hand rule
return false
AI rider "personality" parameters · drawn at random per rider
| Parameter | Range | Purpose |
|---|---|---|
| Target speed factor | Layer limit × 0.75–1.0 | Creates speed differences |
| Reaction delay | 0.2–0.8 s | Simulates human reaction time |
| Following preference | 2.0–3.0 s | Cautious or aggressive |
| Compliance rate | 0.95–1.0 (down to 0.85 in stress tests) | Occasional violations to test robustness |
| Role | Commuter 70% / courier 20% / novice 10% / emergency (event-triggered) | Sets layer and priority |
Logging
Each avoidance writes one log entry, exported from the browser as CSV, as the data source for stress tests:
time, riderId, otherId, layer, tcpa, dcpa, action, resolved(bool)
Collisions (board centres < 1.0 m apart) and near misses (< 2.0 m) are logged separately.
09Visual Language
Orange is the only loud colour
Shape signals category, colour signals urgency, and rhythm carries information.
Off-white
#F4F1E8 · 60–75%
Sky, backgrounds, paper, building masses
Sky Blue
#A8D8FF · 15–25%
"Passable / normal": lanes, layers, steady lights, the HUD's normal state. Never used for warnings
Signal Orange
#FF6B35 · ≤ 5%
"Caution / yield / prohibited": warnings, no-fly zones, emergencies, tail lights. Never used for large fills
Deep Navy
#141A33 · lines
Lines and text only. Never used for fills, backgrounds or shadow blocks
Principles and accessibility
Supporting neutrals (rulebook and HUD only): mid grey #8A8F9C (secondary text, inactive states) and pale blue-grey #DCE6EE (layer fills at 40% opacity).
If orange exceeds 5% of a frame, the frame is too tense or orange is being overused.
Sky blue has low contrast against off-white, so blue never carries text; all text is deep navy. Every blue/orange distinction is also marked by shape or rhythm.
Typography+ Expand− Collapse
| Use | Latin | Chinese | Spec |
|---|---|---|---|
| Display | Inter Tight / Inter (SemiBold) | Noto Sans SC / Source Han Sans (Medium) | Tracking −1%, line height 1.2 |
| Body | Inter (Regular) | Noto Sans SC / Source Han Sans (Regular) | 10–11 pt print, 16 px screen, line height 1.6 |
| Data and HUD | IBM Plex Mono / JetBrains Mono | Source Han Sans (figures in Latin monospace) | Speed, altitude, layer number, time |
| Signage | Inter (Bold, all-caps abbreviations such as L2, 35) | No Chinese on signs | Numbers and symbols wherever possible, to reduce language dependence |
| Shape | Meaning | Analogy |
|---|---|---|
| Circle + orange outline | Prohibition / restriction | Road prohibition signs |
| Triangle (point up) + orange | Warning | Warning signs |
| Rounded square + blue | Information / direction | Direction signs |
| Hexagon + solid blue | Mandatory (must do this) | Mandatory signs |
| Diamond + orange and blue | Emergency-related | Unique to this system |
Sky Signs · 15+ Expand− Collapse
| ID | Name | Meaning | Form |
|---|---|---|---|
| S01 | Layer ID | Current layer | Rounded square, blue ground, large "L2" at centre, the layer's line style below |
| S02 | Layer Speed Limit | Maximum speed for this layer | Orange-outlined circle, "35" at centre, small km/h below |
| S03 | Minimum Speed | Below this speed, change down a layer | Solid blue hexagon, "20" at centre, a short bar below |
| S04 | Keep Right | Keep right in two-way lanes | Blue hexagon, curved arrow pointing down-right |
| S05 | Layer-change Spiral | Layer change possible ahead | Rounded square, spiral; outer arrow up, inner arrow down |
| S06 | Merge | Merging traffic ahead | Orange triangle, two lines joining into one |
| S07 | Ring Intersection | Turning roundabout ahead | Blue hexagon, three anticlockwise circular arrows |
| S08 | Grade Split | North–south upper half-layer / east–west lower half-layer | Rounded square, two parallel arrows offset vertically, labelled N/S and E/W |
| S09 | No-fly | Permanent no-fly zone ahead | Orange-outlined circle + slash, board silhouette at centre |
| S10 | Timed No-fly | Time-restricted no-fly zone, e.g. schools | As S09, with a small clock dot at bottom right |
| S11 | Privacy Buffer | Keep 10 m from façades | Rounded square, window icon and double arrow "10 m" |
| S12 | Landing Pad | Pad station ahead | Rounded square, concentric circles with a downward arrow at centre |
| S13 | Holding Point | Hover and wait here | Blue hexagon, small floating square at centre with short lines above and below |
| S14 | Emergency Corridor | Perform the yield manoeuvre now | Orange-and-blue diamond, arrow stepping right then down |
| S15 | Weather Restriction | Weather rule in effect | Orange triangle, cloud + wind lines, temporary speed limit below |
Each sign in the rulebook: front view + location in the city + one-line meaning + the rider's required action (body figure diagram)
Light grammar · colour × rhythm × direction
| Dimension | Value | Meaning |
|---|---|---|
| Colour | White | Own lighting / stationary |
| Sky blue | Normal, passable | |
| Signal orange | Caution, yield, prohibited | |
| Rhythm | Steady | Stable state |
| Slow pulse 1 Hz | About to change / caution | |
| Fast flash 3 Hz | Act now / stop | |
| Breathing 0.3 Hz | Standby, landed | |
| Direction | Chase | Indicates direction (up, right, detour) |
Only 3 colours: light signals must be recognisable in rain and fog and in peripheral vision; rhythm carries most of the information, which also helps colour-blind users
Combinations+ Expand− Collapse
| Situation | Light signal |
|---|---|
| Lane available | Blue · steady |
| Roundabout: merge | Entry light ring blue · steady |
| Roundabout: slow and watch | Orange · slow pulse |
| Roundabout: stop and wait | Orange · fast flash |
| Climb spiral | Blue · chase (outer ring up, inner ring down) |
| No-fly boundary | Orange · slow pulse (vertical light columns along the boundary) |
| Emergency corridor | Orange · fast flash + chase to the right |
| Pad free / occupied / timed out | Blue steady / white steady / orange fast flash |
| Board: headlight | White · steady |
| Board: tail light | Orange · steady, slow pulse when decelerating |
| Board: side lines | Blue · steady; novice mode blue · slow pulse; failsafe orange · fast flash |
| Board: landed | White · breathing |
Fixed HUD layout · 16:9+ Expand− Collapse
| Zone | Position | Content |
|---|---|---|
| A Layer indicator | Top centre | Layer number (L2) + condensed scale of the layers above and below, current altitude |
| B Speed | Bottom left | Current speed (large monospace figures) + arc scale of the layer's minimum and maximum |
| C Next action | Top right | Icon + distance for the next junction or action (e.g. "Roundabout, turn right · 380 m") |
| D Body figure | Bottom right | Live skeleton figure + fore-aft / left-right / up-down pointers; calibration and failsafe states |
| E Conflict arcs | Around the edges | Orange arcs in the direction of a conflict; thicker means more urgent |
| F Broadcast banner | Top, below A | System broadcasts such as weather, emergencies and no-fly zones; slides in and out |
| G Lane projection | In the 3D scene | Lane lines for the next 200 m projected into the world as thin blue lines |
At most one orange element holds the visual centre at a time · HUD area < 12% of the screen when cruising · all figures in monospace
HUD states+ Expand− Collapse
| State | Trigger | Visual change |
|---|---|---|
| H0 Calibration | First launch / manual | Full-screen body outline and step ring; other zones hidden |
| H1 Cruise | Default | Minimal elements: A, B, C, D small, G lane lines |
| H2 Layer change | Entering a climb spiral | Zone A enlarges; target layer and climb/descent scale animate |
| H3 Junction | 150 m from the junction | Zone C expands into a junction mini-map, synced with the entry lights |
| H4 Landing | After requesting a pad | Central descent line and pad number; zone D prompts "Crouch to descend" |
| H5 Warning | F2 / no-fly warning ring / TCPA < 2 s | Orange arc in zone E + F banner; other elements fade by 50% |
| H6 Emergency yield | Inside an emergency corridor | Fast orange flash around the screen edge + central yield diagram (shift right + descend) + 3-second countdown |
| H7 Failsafe | Tracking lost | Zone D figure greys out; "Auto-hover on" at centre; board side lights flash fast orange |
| H8 Novice | Novice mode | As H1 with thicker lane lines, plus a following-gap bar |
10Onboard System
It sees, plans and flies
SL-1 flies point to point on autopilot by default; the body fine-tunes and takes over, and avoidance is always on.
Modes
| Mode | Who flies | Role of body input | Where available |
|---|---|---|---|
| Autopilot Default | The system: plans a point-to-point route on the lane map and handles take-off, layer changes, junctions and landing | No input needed; leaning only expresses intent (e.g. "overtake"), and the system decides whether to act on it | All passenger layers L1–L3 |
| Body assist | System + rider | Adjust speed within the current layer's limit; shift left or right within the lane (≤ 1.5 m) | L1–L3 |
| Manual | Rider | Full control through the pose mapping table | L1 slow layer and pad areas only |
In every mode, the avoidance algorithm overrides body input, and rule-breaking input (flying against traffic, crossing the median, entering a no-fly zone) is never executed.
Sensing
| Sensor | Position | Function |
|---|---|---|
| 4 × wide-angle cameras | One on each edge, stitched to 360° | Detect other riders, drones, birds, sky signs and light signals |
| 4 × mmWave radar | Four corners | Range and speed; reliable in rain, fog and at night |
| Downward ToF rangefinder | Centre of the underside | Height above ground / pad, for take-off and landing |
| Foot-pad pressure array | Inside both foot pads | Measures pressure distribution under both feet to estimate the rider's centre of gravity, the input for body control |
| IMU | Inside the board | Board tilt, angular rate and acceleration |
| GNSS + RTK | Inside the board | Centimetre-level positioning, matched to the lane map |
| V2X | Inside the board | Broadcasts position, speed and intent every 100 ms; receives emergency, weather and no-fly-zone updates |
Sensing range matches the avoidance algorithm: ≥ 80 m horizontal, ±10 m vertical. Cameras + radar + V2X give triple redundancy: if any one type fails, the board enters failsafe (auto-hover or landing at the nearest point).
SPECULATIVE · 2040
2040 Speculative Sensing
The table above combines technologies that exist today. Below are SL-1's speculative capabilities in 2040: speculative design, not existing technology.
The future board does not just see others; it feels the sky, reads intent and thinks together with the whole city.
-
01
Lateral-line Skin
The fish lateral line: sensing unseen neighbours through changes in water pressure
A mesh of micro pressure sensors in the shell senses airflow disturbance, feeling the wake of a board behind or a gust at a building corner before either is seen.
-
02
Intent Pre-read
Muscle (EMG) signals precede limb movement
Foot pads and insoles read leg EMG and anticipate an intended turn before the body actually leans, so control has almost no latency.
-
03
Sky Mesh
Local coordination in bird flocks and fish schools
Every board, drone and building is a network node, continuously exchanging trajectories for the next few seconds; conflicts are negotiated before they are seen.
-
04
See-around-corners
Urban digital twins
Sensors on buildings and street lights share their view with the board, so it can see an aircraft about to emerge from behind a building.
-
05
Draft Flocking
The V formation of migrating geese
Riders on the same route automatically form low-energy formations, saving power in the airflow of the board ahead; the HUD shows them as a shared band of light.
-
06
Bird-first
Urban ecology and migration routes
Acoustic arrays detect flocks of birds; in migration season, boards automatically cede lanes and lower fan noise.
-
07
Vital Guard
Wearable health monitoring
Foot pads read heart rate and balance; if the rider becomes dizzy or loses balance, the board hovers, lands at the nearest point and calls an emergency board.
-
08
Silent Corridor
The owl's silent flight
Fans reshape their blade noise and emit anti-noise, so boards pass hospitals, schools and bedrooms at night almost unheard.
Pipeline
Sensor fusion → localisation (GNSS + RTK + IMU, matched to the lane map) → prediction (TCPA / DCPA, 4 s look-ahead) → planning (lane-map route + right-of-way table) → control (thrust allocation across the 4 ducted fans).
Rider's centre of gravity (foot-pad pressure array) → intent recognition → one input to the planning layer, fused with autopilot commands.
Interactive Prototype
The project demonstrates the system as a web-based 3D prototype: a computer webcam + MediaPipe pose estimation estimates the rider's centre of gravity, simulating the production board's foot-pad pressure array; the other riders in the city are driven by the same avoidance algorithm.
Privacy: camera frames are processed locally and never uploaded.
Prototype modules · pose / control / board / rules / agents / hud / world / lanes / log / sim+ Expand− Collapse
| Module | Responsibility | Main technology | Difficulty (for a non-programmer) |
|---|---|---|---|
| pose/ | Open the camera, run MediaPipe, output landmarks | @mediapipe/tasks-vision PoseLandmarker | Medium (official examples to adapt) |
| control/ | Landmarks → calibration → dead zone / curve / filter → control commands (throttle, steering, climb/descend, hover) | Plain JavaScript | Medium |
| board/ | Turn control commands into position, velocity and heading (simplified kinematics, no real physics) | three.js vector maths | Low–medium |
| world/ | Generate the street grid, buildings, pads, climb spirals and no-fly zones | three.js; CC0 low-poly assets (e.g. Kenney City Kit) | Medium |
| lanes/ | Describe the lane map as nodes + edges, each edge with layer, direction and speed limit | Plain JavaScript data structures | Medium |
| rules/ | Evaluate speed limits, lanes, no-fly zones, weather, emergencies and violation levels | Plain JavaScript, state machines | Medium |
| agents/ | Fly along lane paths and run the avoidance logic | Plain JavaScript | Medium–high |
| hud/ | Display the HUD layout and states | HTML + CSS overlaid on the 3D view | Low |
| log/ | Record metrics and events, export CSV/JSON | Plain JavaScript | Low |
| sim/ | Run fast AI rider stress tests without rendering | Reuses agents + rules | Medium |
Data flow: camera → PoseLandmarker (approx. 30 fps) → control → board (60 fps) → rules → hud; agents update every 100 ms, and every event is written to log
11Validation
Honest evidence, four ways
The project's evaluation methods: planned or in progress, with no completed results yet.
No participants does not mean no validation; it means a different, honest combination of evidence. The table lists four complementary evaluation methods the project plans to use. Each will answer different research questions, and each has clear limitations. They describe how evaluation will be carried out, not conclusions already reached: the tests are still planned or in progress, and no results have been produced yet.
| Method | Will answer | Evidence to be collected | Main limitations |
|---|---|---|---|
| A Structured Self-testing | RQ1, RQ2 | Quantitative logs + screen / camera recordings | A single body; the designer is an "expert user", so results skew optimistic |
| B AI rider stress test Agent simulation | RQ3 | Large-sample simulation data | Tests the logical consistency of the rules, not human behaviour |
| C Expert-style Heuristic eval · AI-assisted | RQ4, overall usability | Issue list + severity ratings | Reviewed by AI, not real users or human experts |
| D Version comparison v1 vs v2 | Whether design iterations work | Before-and-after comparison across methods A, B and C | Repeated testing by one person introduces learning effects |
12Glossary
Terms
Thirteen terms across body control, air traffic and research methods.
| Term | Definition |
|---|---|
| CoG (Centre of Gravity) | Estimated here as a weighted average of the shoulder and hip midpoints |
| Landmark | A body-part coordinate output by MediaPipe |
| Dead zone | A non-responsive range around neutral that prevents drift |
| Hysteresis | Different entry and exit thresholds, preventing jitter at the boundary |
| One Euro Filter | An adaptive low-pass filter: smoother when slow, more responsive when fast |
| AGL (Above Ground Level) | Height above the ground |
| TCPA / DCPA | Time to closest point of approach / distance at closest point of approach |
| Geofence | A virtual boundary that restricts where aircraft may fly |
| UAM (Urban Air Mobility) | Air transport within cities |
| U-space | The EU's airspace and service framework for drone traffic management |
| Heuristic evaluation | An evaluation method that checks an interface for problems against established design principles |
| Ablation | Removing one part of a system at a time and observing how results change, to show what that part contributes |
| Proto-persona | A persona built from secondary sources and reasoning, not validated through interviews |