q0idmation // draw, rig, animate, export .q0s log inregister

playing q0s in the browser

Open an animation or game post and press play. The file loads and runs on your device. The page compiles the real Rust q0player runtime to webassembly: it reads .q0s files directly and uses the same qvm, frame code, instance state, vector renderer, rig controls, physics, particles and audio mixer as desktop.

controls

Before launch, the player shows a play button. This gesture also enables browser audio. Nothing starts automatically when a post scrolls into view.

An animation has only the desktop player's bottom playback bar, drawn by its original widgets and theme: seek and frame labels, restart, previous frame, play/pause, next frame, time, loop and fullscreen. Space toggles playback, left/right step one frame, ctrl+r restarts and f9 toggles fullscreen. Seeking runs the destination frame's script, following the desktop runtime.

A game has no player controls after launch. Its code owns playback and input. A movie with q0lang scripts is treated as interactive, using the same detection as desktop. It stays in that mode when it switches to another bundled scene.

The desktop application's menus, settings, panels and shortcuts are unchanged. The browser host supplies fullscreen, audio and the initial play gesture.

input

Click the scene to give it keyboard focus. Games receive a/left arrow, d/right arrow and w/up arrow/space through q0.input. Pointer clicks, movement, wheel and touch pointer events reach mouse listeners. A touch can interact with a game authored for pointer input; the browser player does not add game-control buttons.

audio and timing

Audio begins after the play gesture, using the movie's PCM timeline and shared 48 kHz stereo mixer. Animation pause, seek, loop and scene switches update audio. The game simulation uses its fixed movie-fps clock. Hidden tabs pause their host ticks and release held keys, avoiding a large catch-up step when you return.

compatibility

Vector q0s v2 and legacy bitmap q0s movies are supported by the shared parser. Bundled q0lang and movie dependencies run locally. External file dependencies must be included in a bundled export. q0shell file commands have no filesystem host in the browser.

The browser draws authored vector geometry through WebGL2, using the desktop player's cached mesh renderer. Canvas resolution follows the display's pixel density and the GPU's maximum renderbuffer size. The project background and original aspect ratio are preserved. Alpha masks, mask intersections, group opacity and particle blend modes use GPU compositing. A browser with WebGL2 enabled is required.

Playback bar visibility

During playback the bar slides down after three seconds without activity. Move the pointer anywhere over the movie or pause to show it again. Hovering the controls and dragging the seek bar keep it open. The bar overlays the movie; showing or hiding it does not resize the stage. Touching the movie also reveals it. Games and other q0lang movies have no playback bar after launch.

In desktop q0player, View > Keep playback bar visible pins it in place for movies without q0lang. The pin preference is saved between launches.