Engineering

The Second Camera:
Multi-Angle Pose Fusion

A single webcam gives a rough guess at depth. And when you're ready to add a second camera, an iPhone on a tripod, a tablet propped on a shelf, the skeleton gains two witnesses. This is the story of what that unlocks, and why it matters for anyone who teaches, learns, or heals through movement.

Every pose tells a story: the model captures the narrative

The body as a canvas: keypoints tracing geometry in real time

Session Architecture1Two devices run the pose model📱 iPhoneSide Camerakeypoints💻 LaptopFront Camerakeypoints2Both stream to Supabase RealtimeSupabase RealtimeBroadcast channel3The fusion engine merges themFusion enginemerge · occlude · fuse depth4Fused skeleton on both screens✅ One skeleton, no blind spots
01

One Camera, A Great Start

For Everyone

What a Single Camera Does Well (And What It Can't See Yet)

When you stand in front of a webcam and the model draws your skeleton, it is making an educated guess about depth. Your left wrist is a set of coordinates. That depth value is the model saying “this joint is slightly behind the hip center.” It is relative, not metric. It cannot tell you if your wrist is 10 centimeters or 30 centimeters behind your torso.

Worse: turn sideways and half your joints disappear. The model loses confidence when joints are hidden: an elbow behind the ribcage, a knee blocked by the other leg. The skeleton flickers. The data gets noisy. For a dancer practicing a turn or a physical therapist assessing gait from the side, a single front-facing camera is half the story.

Why One Camera Isn't Enough❌ One Camera📷 CameraDANCERBLIND SPOT~40%keypoints lost✅ Two Cameras📷 Front📷 SideDANCER~5%lostEach camera covers the other's blind spot

Two Angles, One Body

Front camera angle showing full body
Front angle: all keypoints visible, depth is relative
Side camera angle showing profile
Side angle: reveals sagittal depth the front camera guesses at
02

Two Angles, One Skeleton

For Everyone

Stereo Vision Without the Stereo Camera

The insight is simple: once you're ready for more, you do not need a depth camera. You need two ordinary cameras looking at the same body from different angles. A laptop webcam faces the dancer head-on. An iPhone on a tripod captures the side view. Both run the same model independently. Both stream their joint positions to the same shared channel.

A fusion engine, running on either device, receives both streams and merges them. For every joint, it picks the camera with the higher confidence. If the front camera loses the right elbow but the side camera sees it clearly, the fused skeleton uses the side camera's coordinates. The result is a skeleton that stays complete through turns, spins, and floor work.

The depth values from both cameras are averaged. Camera A sees depth well from the side; Camera B sees it from the front. Together they produce a depth estimate that is closer to metric than either alone. It is not true 3D measurement, that would require known camera positions and calibration, but it is a meaningful improvement over guessing.

Depth: Guess vs Measure❌ One Camera Guesses📷z ≈ -0.3relative guess±40% error✅ Two Cameras Measure📷 A📷 Bz ≈ -0.28fused average±12% errorz = (zA + zB) ÷ 2More cameras = tighter estimate
03

Supabase Realtime as the Nervous System

For Everyone

No Video, No Server: Just a Channel

The two cameras do not need to send video to each other. A full HD video stream is megabytes per second. A set of joints, just a few numbers each, is a few kilobytes. A shared channel was built for exactly this: small, frequent messages between devices.

There is no video handshake, no server negotiation, no connection setup. Each device opens a channel. When one broadcasts its joints, the other receives them. That is the whole protocol.

The channel also tracks who else is in the session: their camera position (front, side, back), when they joined, and whether they are still connected. If a device disconnects, the fusion engine drops their stream and continues with the remaining cameras. No crash, no freeze: just one fewer witness.

04

What the Second Camera Unlocks

For Everyone

From Parlor Trick to Motion Capture

The immediate win is skeletons that stay whole. A dancer can turn, spin, bend, and the skeleton stays whole. For a ballet teacher comparing a student's form against a reference video, this means the comparison never breaks mid-turn.

But the deeper unlock is multi-angle coaching. The teacher sees the student from the front (laptop webcam) and the side (iPhone on a tripod) simultaneously. Two skeleton overlays, two perspectives, one session. The teacher can say: “Your alignment looks good from the front, but from the side your hips are tilting forward.” That sentence is impossible with a single camera.

On the horizon: true 3D measurement with known camera positions, a 3D viewer that lets you rotate the fused skeleton in space, and duet mode: two dancers in different cities, their skeletons sharing the same virtual stage. The second camera is not the destination. It is the door.

For now, start with what you have. One camera gives you clear, actionable feedback: the skeleton's joints, a real-time overlay, and a depth estimate that is already useful for form comparison. When you are ready, adding a second camera is not a complex overhaul. It is a natural next step that opens a new dimension. You are not missing out. You are on a path.

Related Posts

Dynamic Peace · Engineering

The second camera is not about more pixels. It is about a second witness. Two angles, two confidence scores, two depth estimates: averaged into one skeleton that stays whole when a single camera would lose half its joints. The quietest revolutions are the ones that remove a limitation you had stopped noticing. A dancer turns, and the skeleton does not flicker. That is the whole point.

Every session adds to the cloud: your movement DNA grows with each practice.

Two cameras, one truth. The skeleton stays whole no matter how you turn.