Marino von Wattenwyl

Hi! I'm a software developer tinkering with some things here and there. I've worked on 3D renderers, compilers, VR apps, and websites.

Profile picture

Things I'm Interested In

  • Computer Graphics: Graphics APIs, Shaders, Raytracing, Data Structures, ...
  • Compilers: Parsers, IRs, Optimizers, Code Generators, Assemblers, Linkers, ...
  • Processors: Instruction Sets, Caches, Pipelines, Branch Prediction, ...
  • Drivers: Hardware Interaction, OS APIs, Reverse Engineering, ...
  • Performance Optimization: Profiling, Vectorization, Garbage Collection, ...
  • Virtual Reality: Devices, Tracking, Mixed Reality, ...

Things I've Made

The Banjo Programming Language

A statically typed programming language that compiles to a binary executable. It features short compile times, metaprogramming and "modern" constructs like sum types, optionals, closures, and tuples. The toolchain is written from scratch in C++ and provides an optimizing compiler, a language server, a formatter, a hot reloader, and a basic package manager. The compiler directly emits binary machine code for x86-64, AArch64, and WebAssembly. The generated binaries can run on Linux, macOS, Windows, and in the browser via Emscripten.

AetherVR

An OpenXR implementation that allows you to play VR games without a VR headset. AetherVR tracks your head and hand movements using a webcam and converts them into inputs for VR applications. It can be made to work sometimes with SteamVR games using OpenComposite.

Things I've Used

  • C/C++, Java, C#, Python, JavaScript, Assembly (x86 and Arm)
  • LLVM tools: Clang, clangd, clang-format, clang-tidy, libclang, LLD, LLDB
  • Compiler Explorer
  • Graphics APIs: primarily OpenGL, familiar with Vulkan, WebGPU, and SDL GPU
  • RenderDoc
  • OpenVR and OpenXR
  • WebAssembly and Emscripten
  • Windows, Linux, and macOS
  • Platform-specific native APIs: WinAPI, POSIX
  • OpenCV
  • Docker
  • The usual Web technologies: HTML, CSS, TypeScript, SQL, Angular

Links