A GSoC 2025 work product: Medialode, a lightweight cross-platform CLI and SQLite-backed server that indexes image, audio, video and script files using per-type scanner workers over JSON-over-WebSocket.
A modular real-time pipeline that runs PointNet++ and PointPillars ONNX models on point cloud streams: RealSense, dataset files or WebSocket in; classification, segmentation and 3D detection out over OSC or WebSocket.
Porting the puara-gestures descriptors to Avendish, then rebuilding 11 goofi-pipe analysis nodes — clustering, PCA, VAMP, ERP — as native C++ processors in ossia score. 17 merged pull requests, and what is left.
How a Vulkan ray-tracing voxel renderer was built as an ossia score add-on for dome projection past 180 degrees, including the upstream patch needed to expose the VK_KHR ray-tracing extensions in score.
Porting Splash to OpenGL ES for the Raspberry Pi 4: hunting segfaults and GLSLES quirks, profiling with Tracy, and refactoring the graphics layer behind a Renderer interface that can host future APIs.
Adding TorqueTuner support to Feelix: exporting haptic effects to the knob's firmware, new MIDI effects playable through USB instruments, and an Apple Silicon development setup.
Three new SATIE mappers written in SuperCollider — cartesianControl1, cartesianControl2 and xDirAdjacent — adding Cartesian source placement, distance-based gain attenuation and multi-spatializer control.
A prototype for reliving live performances in augmented reality: MediaPipe Pose motion capture streamed over Web Sockets into a Three.js WebXR scene, and what still blocks Python-to-JavaScript integration.
A Mozilla Hubs room built for SAT's Satellite platform turns light into something you can play with: a Three.js ray source, sliders for angle, decay and rotation, and visible rays shared live between users.
Seven weeks of GSoC 2023 notes on building generalizable SATIE mappers: getting SuperCollider and SATIE running, reading the spatializer GUI and meters, then designing the nearFarField1 and cartesianControl mappers.
Porting Splash to the Raspberry Pi 4 with OpenGL ES 3.2: converting calls and shaders, merging the OpenGL and OpenGL ES code paths, and why Vulkan, bgfx and magnum were evaluated and set aside.
Christian Frisson and Edu Meneses on what it takes to rebuild a digital musical instrument from its documentation: bills of materials, firmware, video guides, and the T-Stick and TorqueTuner as test cases.
An intern’s account of building LivePose Capture, a Blender add-on that drives rigged 3D avatars from LivePose pose data — made to animate the Orchestre symphonique de Montréal for the SAV+R project.
How a music piece was composed in Ableton Live and spatialised for the SAT’s Satosphère with SATIE, SATIE4Live and JACK — plus the mix and Spread/Elevation pitfalls found in the dome.
UNIX permissions come to the shmdata library: octal mode flags replace hardcoded read/write defaults in the socket server, semaphores and shared memory, plus a test that verifies stream access rights.
A GSoC 2022 contributor's account of adding UNIX permission checks to shmdata, SAT Metalab's shared-memory streaming library — what the task really involved, where it stalled, and how mentoring helped.
Adding LivePose to Poire's web UI alongside SATIE: remote start/stop of both tools on embedded Linux, Jack Audio settings, per-backend configuration, and state that survives a page reload.
A running status table for porting the Metalab tools — LivePose, Splash, shmdata, SATIE, switcher and the rest — from Ubuntu 20.04 to 22.04 (Jammy Jellyfish), with links to the tracking issues.
Face and eye gestures as an input method in Satellite, SAT's fork of Mozilla Hubs: how Google MediaPipe was integrated, how gestures are rebound to in-world actions, and what accuracy work remains.
Ambisonic impulse responses under the Centech's concrete dome revealed an acoustic focal point at its centre. Placing a single round pouf there cut reverberation from 13.57 s to 2.97 s.
A step-by-step build of Ballant, a small arm-raising game driven by LivePose: the HTML page, the CSS, the JavaScript game loop, and the OSC and socket.io plumbing that wires them together.