Oleg Frolov
@volorf
XR Design and Engineering. Spatial Computing. Semiotics.
Made a few base voxel creation interactions for the BoxelXR VisionOS version. #ecs #realitykit #visionos #visionpro #swiftui #voxeleditor #defaultcube #boxelxr
Made a custom controller for VisionOS. Uses IME to drive discrete directional events and BLE to connect to the device. Apple Vision Pro doesn’t have native controllers, but as an heir to a much more mature OS and ecosystem, it has everything you need to build your own!
Made a variant of my previous experiment. It uses 4 directions to drive BRIGHTNESS and HUE states. Tap the screen to switch between these two modes. #ble #m5atom #arduino #esp32 #prototyping #uxdesign #smarthome #interactiondesign #embeddedprogramming
Ported the previous experiment with EPS32 and BLE bulb to M5Atom. The mode selector is IMU-driven: UP increases brightness, DOWN decreases it.
Many of you are familiar with this situation: you found the best-looking lamp, but sadly it doesn’t have a brightness control. Fortunately, there is no problem that can not be fixed with tape and a bit of hacking.
Made another experiment using IMU data to drive UI interactions: A bulb brightness controller. #ble #m5stick #arduino #esp32 #prototyping #uxdesign #smarthome
Ported the Pomodoro timer I shared last time to a smaller device: M5Atom. Looks cute! I also like that the display is treated as a button. I didn’t have a battery, so I had to power it via USB and change how IMU data is processed a bit for this demo.
Design details: in BREAK mode, the sand pixels rise, with a semantic similarity to lightness, elevation, and restoration.
Made a lil pomodoro timer for M5StickS3. It uses IMU data to switch between different UI modes and a single button to change settings. I like the implicit modes. It follows the affordance of the physical device. #arduino #lvgl #m5sticks3 #prototyping #esp32 #microcontroller #pomodoro #uidesign #imu
Was playing around with IMU data from the M5Stick (ESP32-based microcontroller) and LVGL to prototype a custom user input system for BoxelXR. Having (almost) direct access to hardware feels really liberating for design ideation. Liked LVGL. Looked like P5 for embedded devices.
Bidirectional Slider. #ui #interactiondesign #swiftui #uiprogramming #uidesign
Added PROXIMITY algorithm to modifiers for Generista [Figma Plugin]. I liked the effect in Cinema 4D and often used it with P5.js and Processing. And now you can do this directly in Figma!
Updated the XR controllers I use in BoxelXR. Now ALL actions and UI interactions have Sound and Haptic Feedback. Not sure if I overdid it, but it felt fun :) #spatialcomputing #voxeleditor #xr #vr #mixedreality
Got a few new books for weekend readings. Started “Why Machines Learn” and “AI Engineering”. So far so good. Was pleasantly surprised that the math behind the ML/AI was so similar to what I use when I work on spatial interactions and shaders.
Asked Claude to generate a bunch of Minecraft characters for my little voxel editor, BoxelXR. It looked at the existing handmade models and followed their example. The result is fine. It’s much better than the generation test I made last year.
a classic variation: rotational change rate drives the slider value + a balanced version.
UI experiment with a slider inspired by lever mechanics. Built in SwiftUI.
Made a few quality-of-life updates for Generista: 1️⃣ Improved randomization algorithms; 2️⃣ Fixed a few bugs in input validation; 3️⃣ Added cross-session UI state sharing (the plugin remembers your settings); 4️⃣ Added a help icon to explain what each modifier does. Happy Designing!
A few more variations for my previous SwiftUI experiments with pull-to-lever mechanics. #swiftui #interactiondesign
Another experiment with a slider UI leveraging a lever. Like the previous one, pulling down increases value, while pulling up decreases it. It follows physics-based expectations: the slider indicator behaves like a liquid. #uidesign #ui #interactiondesign #slider #progress #microinteractions
Over the weekend, I was refactoring some of my old projects with Claude, and accidentally added several new features to Sparkliner: ✅ Vertical Bar Graph; ✅ Donut/Pie Graph; ✅ Preserving users’ UI changes across sessions. #figmaplugin #datavisualisation #productdesign #graphs
This is my original design of the sharing screen for Spatial Snake. Looks like a portal. I love their multi-dimensional contrast when a 2D plane reveals hidden 3D space (the absurdity of portals is fascinating).
Made a preloading animation for Spatial Snake. It’s one of the cases when an eye-catching animation can mask a few seconds of processing delay, making the experience feel more seamless than it actually is. #spatialcomputing #spatialdesign #mixedreality #xrdevelopment #3d
Discovered that you can display a mesh's edge length in the editor. 3D UI Design 🤝 Blender.
🕹️ Finished my little game, Spatial Snake. It’s available on the App Store. Feel free to try it! And don’t forget to share your score with Haiku, written by on-device AI (FoundationModels)! #swiftui #realitykit #visionos #visionpro #spatialcomputing #mixedreality #foundationmodels #xr