The main screen of ProtoStream is designed to be clean, fast, and easy to use—even with limited visibility inside a suit head! Below the top connection bar and status indicator, the interface is centered around three Radial Menus and a collapsible Static Image Slots drawer at the bottom.
How the Radial Menus Work
Instead of cluttering your screen with dozens of tiny buttons, ProtoStream organizes its tools into three circular radial menu buttons stacked vertically in the middle of the main screen:
- Main Radial (Top circular button with the ProtoStream app icon)
- Misc. Radial (Middle circular button)
- Display Mode (Bottom circular button displaying your active Display Mode icon)
To use any radial menu:
- Tap and HOLD your finger on the circular button. A wheel of icons will smoothly pop out around your finger.
- Without lifting your finger, SWIPE in the direction of the feature you want to use.
- RELEASE your finger to launch that feature! (If you change your mind, just slide your finger back to the center or away from the icons before letting go.)
Here is where everything lives by default:
- Main Radial Menu (Your core streaming and voice/audio tools):
- Swipe UP (12 o'clock) — Start Live Screen Streaming: Mirrors your phone's entire screen (or a chosen app) live onto your visor in real time.
- Swipe DOWN (6 o'clock) — Stop Streaming / Clear: Immediately stops your active screen stream or static image stream.
- Swipe LEFT (9 o'clock) — Audio Visualizer: Opens the Visualizer Settings pop-up to turn your visor into a sound-reactive equalizer or beat-synced GIF display.
- Swipe RIGHT (3 o'clock) — Vocal Sync: Opens the voice-activated expression switcher.
- Misc. Radial Menu (Your creative tools, emote switcher, and games):
- Swipe UP (12 o'clock) — Emote Panel: Opens the instant emote switcher with controller keybind support.
- Swipe DOWN-LEFT (8 o'clock) — Drawing: Launches the built-in pixel art studio.
- Swipe DOWN-RIGHT (4 o'clock) — Games Plugin Manager: Opens the visor game arcade and custom game loader.
- Display Mode Radial Menu (Quick display layout switcher):
- Swipe UP (12 o'clock) — Centered Across Both (128x32)
- Swipe DOWN-RIGHT (4 o'clock) — Duplicate (64x32 x2)
- Swipe DOWN-LEFT (8 o'clock) — Mirror Right Side
Note: Want to rearrange which features are on which wheel, change their clock positions, or hide buttons you don't use? You can customize every single radial slot inside the Settings menu!
Display Modes
ProtoStream offers three distinct Display Modes that control how graphics are mapped onto your visor's two 64x32 LED matrices. You can switch between these at any time using the Display Mode Radial Menu on the main screen—even while you are actively streaming, and the visor will update on the fly!
- Duplicate (64x32 x2): This is the default setting. It takes a 64x32 image (or your scaled phone screen) and displays identical copies on both the left and right matrices.
- Centered Across Both (128x32): This mode spans your image continuously across both matrices, treating your visor as one wide, unified 128x32 pixel display split down the middle. This is ideal if you have artwork drawn on a 128x32 canvas or want asymmetrical expressions (like a wink or a raised eyebrow on only one side).
- Mirror Right Side: This name can sound slightly counter-intuitive at first, so here is how it works: it acts like Duplicate mode, except the image on the "right" matrix is flipped horizontally so both sides of your face stay symmetrical!
(Important Geometry Note: "Right Side" refers to the panel on your right when the helmet is sitting on a table facing you. When you are actually wearing the helmet, the panel being flipped is on your anatomical left! If your eyes/mouth appear backward on your suit, your physical HUB75 panels were mounted or chained in the reverse order.)
Static Image Slots & One-Time ("Non-Slot") Uploads
At the bottom of the main screen, you'll find a collapsible card labeled "Static Image Slots". Tap anywhere on its top header bar to expand (▼) or collapse (▶) the drawer.
Unlike live screen streaming—which mirrors whatever is actively happening on your phone screen—Static Image mode streams a dedicated image or animated GIF directly from a background service. That means once you push an image or GIF from this menu, it will stay on your visor even if you exit the app, switch to other apps, or lock and turn off your phone's screen!
Note: GIFs will pause if you disconnect from the board's Wi-Fi.
When you expand the Static Image Slots drawer, you'll see two buttons across the top:
- Non-Slot (Quick One-Time Upload):
- Tapping "Non-Slot" opens your phone's gallery so you can pick any static image or animated GIF and immediately push it to your visor without saving it into a permanent slot.
- Android will ask for permission to start screen capture/projection (this is required by Android to run the high-priority background streaming service)—be sure to accept it!
- The uploaded image or GIF will automatically use whatever Display Mode and Interpolation mode you currently have selected.
- + Add Slot (Persistent Custom Slots):
- Tapping "+ Add Slot" creates a new permanent slot card in the list below. You can create as many slots as you'd like, and they will all be saved automatically when you close the app.
- Here is how to use each slot card:
- Uploading or Changing the Graphic: Tap directly on the square thumbnail box on the left side of the slot card to pick a static image or animated GIF from your device. (Note: The thumbnail is just a quick reference preview and does not reflect how the image will be scaled on the visor.)
- Renaming a Slot: Quickly triple-tap (tap three times fast) directly on the slot's name text in the middle of the card! This unlocks the text box and pops up your keyboard so you can type a custom name.
- Pushing to the Visor: Tap the blue circular ">" button on the right side of the card. Accept the Android screen-sharing prompt, and that slot's image or GIF will immediately start streaming to your visor!
- Deleting a Slot: To prevent accidental deletions while suiting, the red delete button requires you to tap and HOLD it for 3 full seconds. A visual progress animation will fill up while you hold your finger down; once it finishes, the slot is removed.
- Stopping a Static Stream: To pause a displayed GIF, simply use the Main Radial Menu and swipe down to "Stop Streaming / Clear".
Audio Visualizer
Want to turn your visor into a reactive audio equalizer or display custom animated GIFs that groove to the beat of the music? That's where the Audio Visualizer comes in!
To open it, tap and hold the Main Radial button and swipe LEFT (9 o'clock). (If you were already streaming your screen, the app will automatically stop the screen stream for you before opening the visualizer!) The first time you open it, Android will prompt you for microphone access—select "While using the app" so the visualizer can hear surrounding music and voices.
This opens the "Visualizer Settings" pop-up menu, which gives you three main visual styles across the top:
- Solid: Displays classic frequency equalizer bars across your visor using a single solid color chosen from a preset list (Red, Green, Blue, Cyan, Magenta, Yellow, White, Orange, Purple, or Pink).
- Gradient: Lets you pick three distinct colors (Left, Middle, and Right) that blend together into a smooth horizontal color gradient across the equalizer bars.
- GIF: Lets you select a custom animated GIF that animates dynamically in response to sound! Tap "Select GIF" to pick your file. Beneath that, you'll find a toggle switch labeled "Rewind on Silence (off = Reset)":
- With the toggle OFF (Default): The GIF plays forward while sound is detected, and immediately snaps back to Frame 1 the moment it gets quiet.
- With the toggle ON: The GIF plays forward while sound is detected, and smoothly plays backward in reverse when silence is detected until it settles back at the first frame.
At the bottom of the pop-up, you'll find a slider for Microphone Sensitivity. Slide this higher in quiet rooms or lower at loud convention raves so the bars or GIF react cleanly without maxing out constantly. Note that GIF mode also inherits your active Display Mode and Interpolation setting!
Once you're happy with your settings, tap "Start" to launch the full-screen visualizer. While running, both Boop Detection and Head & Motion Gestures remain fully active, so people can still boop your snoot while you're dancing!
A Few Quick Survival Tips for the Visualizer:
- Bring a Portable Charger: Running real-time audio FFT processing at rave volume will give your battery a workout—keep a power bank in your pocket!
- How to Exit: Simply triple-tap anywhere on the black visualizer screen (or use your phone's back-swipe gesture) to close the visualizer and return to the main menu.
Vocal Sync
To open Vocal Sync, tap and hold the Main Radial button and swipe RIGHT (3 o'clock).
While Vocal Sync looks similar to the Emote Panel, it maps your expression slots directly to the volume of your voice in decibels (dB) rather than manual button presses! This lets your visor automatically animate mouth movements as you talk, or dynamically swap expressions based on how loudly you speak (for example, showing a normal talking mouth at conversational volume, and automatically switching to an intense or angry face when you yell!).
Here is how to set up and use Vocal Sync:
- The "Silent" Slot (0 dB): At the very top of your slot list, you will see a permanent default slot named "Silent" locked at 0 dB. This is your resting expression whenever you aren't speaking. To keep your baseline state unmistakable, the Silent slot cannot be deleted, renamed, or have its 0 dB threshold changed—just tap its "Upload" button to give it your default idle face or blinking GIF!
- Adding & Ordering Custom Slots: Tap the blue "Add Sync Slot" button to create a new voice-triggered slot (initialized at 50 dB by default). Every time you add or edit a slot's decibel level, the app automatically sorts all of your slots from top to bottom in order of lowest to highest volume threshold.
- Configuring Each Slot:
- Upload: Tap "Upload" to assign a static image or animated GIF to that volume tier.
- Rename: Tap "Rename" to give the slot a helpful label (like "Quiet Talk", "Normal Talk", or "Shouting").
- Delete: Tap "Delete" and confirm the prompt to remove a custom slot.
- Display Mode: Tap the mode button in the top-right corner of the slot card to cycle that specific slot between Duplicate (64x32 x2), Centered Across Both (128x32), and Mirror Right Side.
- Set Activation Noise Level: Tap this green button to set the exact decibel (dB) volume required to trigger the slot. You can either type a number manually OR tap the "Auto Set" button and speak into your microphone at your target volume—the app will sample your voice for a couple of seconds and fill in the exact decibel number for you!
- Back-Tracking & Step-Down Delay: At the top of the Vocal Sync screen, you'll see a toggle switch labeled "Back-Tracking" with a "Settings" button next to it:
- When Back-Tracking is OFF: Stopping your speech causes the visor to snap immediately from whatever loud slot was active straight back to the "Silent" (0 dB) slot.
- When Back-Tracking is ON: When you stop talking, the visor smoothly steps backward down through each intermediate volume slot in sequence until it reaches "Silent", creating a natural mouth-closing transition! Tapping the "Settings" button next to the toggle lets you set the exact Back-Tracking Delay in milliseconds (ms) between each step.
- Launching & Running in the Background: Tap "Launch Vocal Sync" to start! A live decibel meter and reactive volume bar will appear right below the button, and the currently triggered slot will be highlighted with an "[ACTIVE]" tag. Built-in hardware noise suppression helps focus on your voice while filtering out background hum. Best of all, Vocal Sync continues running seamlessly even when you leave the screen or use your phone normally—just tap "Stop Vocal Sync" whenever you're ready to end the session.
Pro Tip: For the best responsiveness and isolation from crowd noise, I highly recommend pairing a small wireless clip-on Bluetooth microphone to your phone and mounting it inside your helmet right near your mouth!
Emote Panel
To open the Emote Panel, tap and hold the Misc. Radial button (the middle button on the main screen) and swipe UP (12 o'clock).
The Emote Panel is your dedicated expression soundboard! It lets you hotswap between unlimited static images and animated GIFs instantaneously—without needing to start a screen capture stream at all—and includes full wireless controller support so you can change your face while wearing bulky hand-paws.
- Adding & Managing Emote Slots: Tap "Add Emote Slot" at the top of the page to create a new slot card. Each card includes:
- Upload: Pick any static image or animated GIF from your device.
- Rename: Change the slot's display name for easy reference.
- Delete: Permanently remove the slot (with a confirmation prompt).
- Per-Slot Display Mode (Gear Icon): Tap the gear icon in the top-right corner of any emote slot to set its individual Display Mode (Centered Across Both (128x32), Duplicate (64x32 x2), or Mirror Right Side). If you change the Display Mode of a slot card while a GIF emote is actively playing, the visor updates immediately; for static images, simply tap the slot's thumbnail once more to refresh it.
- Controller Keybinds (Gamepad Icon): Right below the gear icon is a button with a controller icon. Tapping this opens the Controller Binding dialog:
- Tap "Press to Listen for Input", then press any button, D-pad direction, bumper, trigger (LT/RT), or tilt either analog stick (Left Stick or Right Stick Up/Down/Left/Right) on your connected Bluetooth or USB controller!
- Tap "Save" to lock in the binding (or "Clear Binding" to remove it).
- As long as the Emote Panel screen is open, pressing that controller input will immediately push that emote straight to your visor! While it works with almost any standard gamepad, it is optimized and thoroughly tested for Xbox (X-Input) controllers.
- Touch Activation: Don't have a controller handy? You can also just tap directly on any emote slot's thumbnail preview to send it straight to your visor!
A Quick Note on GIF Performance: Because the Emote Panel streams raw decoded frames directly over UDP, extremely heavy or high-framerate GIFs may play back slightly slower if there is heavy Wi-Fi interference. If a complex GIF feels sluggish in the Emote Panel, try simplifying the GIF or upgrading to a (better) external uFL antenna on your MatrixPortal S3. I've found in testing that complex GIFs occasionally perform better when used as static images, but this may not always be the case.
Drawing
To open the built-in pixel art studio, tap and hold the Misc. Radial button and swipe DOWN-LEFT (8 o'clock).
The Drawing suite lets you paint pixel art at your visor's exact native resolution! If your phone is currently connected to your Protogen's Wi-Fi, every single pixel stroke, flood fill, and edit you make on the canvas is streamed live to your physical visor in real time. Even if you aren't connected to your visor, the Drawing suite works 100% offline so you can design new faces anywhere.
- Dual Independent Canvas Modes (128x32 vs. 64x32):
At the top-left of the screen, a toggle switch lets you flip between "128x32 Mode" and "64x32 Mode". Each mode acts as its own completely separate workspace with its own independent Undo/Redo history—meaning switching between 128x32 and 64x32 won't erase or overwrite what you were drawing in the other mode!
- 128x32 Mode: Spans across both visor panels, divided down the center by a magenta guide line. Labels above each half ("Right (Anatomical)" and "Left (Anatomical)") remind you which side is which when wearing the helmet. Tapping the "Swap Sides" button in the top-right flips the left and right halves visually inside the app's editor if you prefer working from a front-facing perspective, without altering how the final art appears on the physical visor.
- 64x32 Mode: Automatically duplicates your 64x32 canvas onto both sides of the visor ("Both Sides"), and disables the "Swap Sides" button.
- Pinch-to-Zoom & Two-Finger Pan:
Working with tiny pixels on a phone screen is much easier when you can zoom in! Pinch with two fingers anywhere on the canvas to zoom in up to 10x for pixel-perfect detailing, and drag with two fingers to pan around your artwork.
- Drawing Tools & Color Picker:
Below the canvas, you have three primary drawing tools plus a live color button:
- Pencil (✏️): Draw freehand pixels and continuous lines with a single finger or stylus.
- Paint Bucket (🪧): Flood-fill any enclosed area or background with your active color.
- Eraser (🧼): Wipe individual pixels back to black (off).
- Color Button (Colored Circle on the Right): Tap this circle to open the "Pick Color" studio! Inside, you can drag across the gradient box, type an exact Hex Code (e.g., #FF00FF), tap any of your 5 "Recent Colors" swatches, or tap "Pick Color From Canvas" to turn your finger into an eyedropper and sample any pixel directly off your drawing! Tap "Apply" to lock in your color.
- Full-Screen Landscape Mode:
Need more room to draw? Tap the full-screen icon (⛶) in the top-right corner of the canvas border to rotate into a dedicated, edge-to-edge landscape view! While in full-screen mode, tap the small tab on the far-left edge of the screen to slide out your full tool drawer. Tap the corner icon again to return to portrait view.
- Canvas Management, Importing & 4 Ways to Save:
- Undo & Redo: Step backward or forward through your stroke history (up to 30 steps per canvas mode).
- Clear: Wipes the active canvas clean (protected by a confirmation prompt so you never clear by mistake).
- Import Image: Brings any existing image from your phone onto the active canvas, automatically centering and scaling it to fit vertically while preserving its aspect ratio.
- Save as Static Image Slot / Save as Vocal Sync Slot / Save as Emote Panel Slot: Tapping any of these three buttons prompts you to name your creation, then automatically creates a brand-new slot in that feature populated with your drawing and takes you straight there!
- Save as Image: Exports your pixel art directly to your phone's photo gallery as a crisp PNG file for backup or external editing.