ToastconcernandClaude Opus 5.5 cb64b1a238 Fix Clang and 32-bit builds; look right on Linux and macOS
- ImGuizmo is compiled with -fno-strict-aliasing on GCC/Clang: its type
  punning let Clang for x64 turn gizmo drags into NaN transforms
- 32-bit: the .fenv packer keeps LZMA within a 32-bit address space (saves
  failed with out-of-memory); failed saves are logged
- std::to_string of file times and the 32-bit descriptor handle cast compile
  on every standard library
- Linux fonts: Noto Sans, then Liberation Sans, then DejaVu; the Play/Pause
  button sizes to its label; macOS fonts are rasterized at Retina density
- self-test stages allow at least 3000 frames (software GPUs draw ~30 a second)
- headset payload rebuilt from this source

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 12:03:25 -05:00

Frame Studio and Frame Home

Frame Home makes your homes the Steam Frame's environment: Meta Quest homes (HSL, Clay .opa, glTF) and models, converted into Frame-native .fenv environments and drawn in SteamVR's compositor in place of its own.

Frame Studio is the desktop editor for them. It opens Meta homes, .fenv environments and models (glTF, FBX, OBJ), shows them with the same renderer the headset runs, and lets you move, hide and delete objects, shape the walkable area, add sounds and pictures, save environments and install them on the headset.

Downloads

Every push builds everything (Actions → the latest run → Artifacts); tagged versions are on the Releases page.

Computer Frame Studio
Windows, 64-bit PCs FrameStudio-windows-x64.zip
Windows, 32-bit FrameStudio-windows-x86.zip
Windows on ARM (Snapdragon, Surface Pro X…) FrameStudio-windows-arm64.zip
Linux, 64-bit PCs FrameStudio-linux-x64.tar.gz
Linux, 32-bit FrameStudio-linux-x86.tar.gz
Linux on ARM (Raspberry Pi 5, ARM laptops, the Steam Frame's desktop) FrameStudio-linux-arm64.tar.gz
Mac with Apple Silicon (M1 and later) FrameStudio-macos-arm64.zip
Mac with Intel FrameStudio-macos-x64.zip

Studio needs a GPU with Vulkan 1.2: any recent NVIDIA, AMD or Intel driver on Windows and Linux; on a Mac, Vulkan runs on Metal through MoltenVK, which comes inside the app. The 32-bit builds have at most 4 GB to work in: the very largest homes may not fit.

Frame Home without Studio: FrameHome-installer.zip installs it on the headset from any computer (or on the headset itself); see frame/README-frame-home.txt inside it.

Building

Everything Studio needs is in third_party/ (Vulkan is loaded at runtime). CMake 3.16+ and Ninja.

On Command Builds
Windows (Visual Studio 2022 with C++) studio\build_windows.bat x64 (or x86, arm64) Windows
Linux scripts/build-studio.sh linux-x64 (or linux-x86, linux-arm64 on an ARM machine) Linux
Linux with llvm-mingw scripts/build-studio.sh windows-x64 windows-x86 windows-arm64 Windows, cross
macOS (Xcode command line tools, brew install ninja molten-vk) scripts/build-studio.sh macos-arm64 macos-x64 macOS
anywhere scripts/build-studio.sh frame-home the Frame Home installer
anywhere it can scripts/build-studio.sh all everything this computer can build

Linux builds need the X11 headers (libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev) and, for linux-x86, gcc-multilib g++-multilib. Packages land in dist/.

The headset side (frame-home, frame-switcher, fenv-tool, the compositor layer) is built on the Steam Frame itself against SteamVR's own OpenVR library: the top-level CMakeLists.txt, then g++ -O2 -shared -fPIC -std=c++17 layer/frame_home_layer.cpp -o build/layer/libframe_home_layer.so. Its ready-built copy is frame/payload/, which every Studio build and the installer carry.

Layout

studio/ Frame Studio: studio.cpp (the editor), platform*.{h,cpp} (Windows / Linux / macOS), frame_pacer.h
src/ shared engine: renderer (hsl_renderer), scene loading and baking, .fenv, walkable area, Frame Home (main.cpp), fenv-tool
layer/ the Vulkan layer inside SteamVR's compositor that shows Frame Home in place of its environment
frame/ the headset payload and the stand-alone installers
third_party/ vendored libraries (each with its own license)
tools/ test and measuring tools (headless renders, walk tests, shader generators)
2026-10-25 21:02:04 +01:00
Languages
C++ 95.9%
CMake 1.3%
Shell 1.2%
Python 0.9%
GLSL 0.4%
Other 0.3%