ShramkoGSFPV

Open-source FPV simulator · MIT

Fly an FPV drone through real 3D scans — right in your browser

ShramkoGSFPV turns 1,300+ Gaussian Splatting scans from SuperSplat into places you can fly: real rooms, streets and gardens with walls you actually crash into, Betaflight-style rates and PID, and your own radio over USB or touch sticks. Nothing to install.

Fly now — no install

Works best in desktop Chrome or Edge with WebGPU.

Know a pilot who should try this? Share it:

  • 1,300+ walkable scans
  • Scene scale ×0.25 to ×100
  • WebGPU + PlayCanvas
  • Rates checked against Betaflight 4.5.1
  • Swept voxel collision
  • MIT license

Video: a flight in Tunis — old town streets, scan by Andrii Shramko, CC BY 4.0, recorded in the simulator. Fly this scene: Tunis — old town streets

01New: places to fly

Every walkable scan on SuperSplat is now a place to fly: 1,300+ and growing

Real rooms, gardens, streets and churches, scanned by people around the world and published with walls you crash into. Let the simulator pick, change places on every crash, or bring your own scan.

  • 1,300+ real places

    The SuperSplat tab in the simulator lists every public scan with walls, with superspl.at's own sorting, filters and search.

  • A new place after every crash

    Star the scans you like, switch on “Next scene after a crash”, and every crash drops you somewhere else, in random order: your favourites, the places you have flown or Andrii's picks.

  • Switch in a second

    N: next scene, Shift+N: random, Shift+F: next favourite. The page does not reload and your radio stays connected.

  • Your own scan, or anyone's

    Publish a scan on SuperSplat, or take any public one, and paste its link here or in the simulator.

Fly a random location

One of the 200 best-liked walkable scans on SuperSplat, picked at random.

The catalogue: every place with its own page

The SuperSplat tab of the simulator: sorting, walls and download filters, Random top-rated and a grid of scans with walls
superspl.at's catalogue in the picker with its sorting, time, walls and download filters, search, Random top-rated and a star for favourites.

Video: a flight in Winter Garden — Jastrzębia Góra, Poland, scan by Andrii Shramko, CC BY 4.0, recorded in the simulator. Fly this scene: Winter Garden — Jastrzębia Góra, Poland

02New: scene scale

Shrink yourself: fly a room like a city

Two keys scale the whole scene around the drone, from ×0.25 to ×100. At ×100 you are the size of a mosquito: a chair is a tower block, the gap under the bed a canyon. Dive along a chair leg — it is an awesome feeling.

a scan that came out too big
×0.25
true size
×1
a room becomes a hall
×10
a mosquito in a city
×100
  1. Open a room: Andrii's villa, the winter garden or any indoor scan.
  2. Hold ] to grow the scene ([ shrinks it, Shift+] doubles it at once), or drag Scene size in the pause menu. Each scan keeps its own scale.
  3. The walls grow with it, so you still crash into the chair leg you dive past.

Macro scans work too: a plant, a toy or an insect is a small real object, so scale it up from ×3 to ×10 and fly it like a big building, among the leaves or around a fly. Such scenes can start already enlarged, and [ and ] change the size at any moment. The other way round, shrink a city (down to ×0.25) so it feels like a model, and fly it with a micro whoop.

Shrink yourself: fly a room like a city

Opens the room in Andrii's villa; press ] until the table is a bridge.

The Scene size row of the pause menu: the scan's scale and its slider, with the walls' block size under it
[ and ] scale the scan around the drone from 0.25× to 100×: fix a scan not in true metres, or shrink yourself and fly a room like a city. Kept for each scan; the walls' block size follows.

Video: a flight in Modlinek Villa — red room and bathroom, scan by Andrii Shramko, CC BY 4.0, recorded in the simulator. Fly this scene: Modlinek Villa — red room and bathroom

03Inside the simulator

See what is already built

Every picture on this page is a real screenshot of the live simulator: 39 of them, taken on October 2, 2026 by a script in the repository, so they can be taken again after every release.

  1. Throttle found
    Check before flying

    Radio & calibration

    Plug in an EdgeTX radio and a drawn radio walks you through it: stick by stick, then the switch you arm with, then a check of every channel before you fly. Each step waits until you really move the stick.

    Throttle found
    Each stick is found by moving it: the wizard names the channel, offers Reverse and moves on when the stick is back.
    Check before flying
    Every channel with a live bar and buttons to reverse or redo it, the arm state, and the profile to download or load.
    Live now: 8Every feature and its status
  2. Flight mode
    Touch sticks

    Controls & flight modes

    Angle self-levelling by default for everyone; the chip on screen, M or a switch on your radio picks Horizon or Acro. No radio at hand? The keyboard shows every key it uses, touch sticks appear on a touch screen, and a gamepad connects through the browser (not tested on real hardware yet).

    Flight mode
    Angle by default; the chip, M or a switch on your radio picks Acro, Angle or Horizon.
    Touch sticks
    Two pads and an ARM button; on touch the quad flies self-levelling (ANGLE).
    Live now: 8Every feature and its status
  3. Drones
    Betaflight import

    Drone & tuning

    BetaFPV-class whoops, a 5-inch freestyle and a 5-inch race quad and an X8 cinelifter with a cinema camera, and every number on their cards says where it comes from. Paste a Betaflight CLI diff to fly with your own rates and PID.

    Drones
    Drone presets with a rate curve each; every number says where it comes from: manufacturer, measured or estimate.
    Betaflight import
    Paste a CLI diff and its rates and PID fly the quad; every setting the simulator does not use is listed (here a test diff).
    Live now: 9Every feature and its status
  4. Automatic respawn
    Crash on a phone

    Gravity, crashes & respawn

    Hit a wall and the quad crashes at the speed it hit, the wreck tumbling with debris; two seconds later it is back in the air, 5 s back along your path and still armed. Crashes off, the delay and where you come back sit in Settings.

    Automatic respawn
    The toast counts down; 2 s after the crash the drone is back 5 s along its path, still armed. Enter stays, R goes to the start, N and F load another scene.
    Crash on a phone
    Impact speed, debris and the crash panel on a small screen.
    Live now: 7Every feature and its status
  5. Tunis old town
    Recording

    Camera, view & video

    An OSD like in your goggles, field of view and camera uptilt. F9 records 60 fps video of Andrii's scans with their credit in the picture, auto-record catches every flight into your folder, and a flight log becomes a 60 fps video up to 4K.

    Tunis old town
    The flight view on Andrii's Tunis scan: arm state and flight mode, battery voltage and flight time, throttle, speed, altitude and the keys.
    Recording
    F9 records 60 fps video of Andrii's scans; Auto records every flight into the folder you choose, and the bar says what was saved where.
    Live now: 8Every feature and its status
  6. SuperSplat tab
    Scene size

    Scenes & SuperSplat

    Pick one of 1,300+ walkable scans in the SuperSplat tab with its own filters, one of Andrii's, or paste a link, and watch it load with real numbers. N, Shift+N and Shift+F change the scene in the page with the radio still connected; [ and ] scale the scene from ×0.25 to ×100.

    SuperSplat tab
    superspl.at's catalogue in the picker with its sorting, time, walls and download filters, search, Random top-rated and a star for favourites.
    Scene size
    [ and ] scale the scan around the drone from 0.25× to 100×: fix a scan not in true metres, or shrink yourself and fly a room like a city. Kept for each scan; the walls' block size follows.
    Live now: 13Every feature and its status
  7. Voxel grid over the scan
    Floating pieces dropped

    Walls & voxel grid

    Show the walls you crash into as a voxel grid over the scan, or fly the grid alone. A noisy scan? Drop its floating specks, the phantom walls, with a live preview, or switch the walls off for every scene.

    Voxel grid over the scan
    The walls you crash into, drawn over Andrii's Tunis scan in height colours: V switches between off, over the scan and voxels only; the chip names the style and the voxel size.
    Floating pieces dropped
    Modlinek Villa with the pieces of its walls under 64 blocks removed: 44 phantom walls gone, for this scan only; the walls menu says what was dropped.
    Live now: 4Every feature and its status
  8. Settings
    Flight stats

    Settings, stats & flight data

    Every setting on one screen, kept between visits, with export, import and reset. Disarm and a goggles-style card shows the flight; pause and the summary panel has its stats, every menu item and every key.

    Settings
    Every setting on one screen, by group and with search; here Crashes & respawn: crashes, threshold, automatic respawn, delay, where and how far back, the invisible platform.
    Flight stats
    Disarm after a flight and a card like the goggles OSD shows air time, top speed and altitude, distance, battery, current, mAh used, G-force and average throttle.
    Live now: 11Every feature and its status

04What you can set up

Everything you can tune today — and what is coming

Radios, drones, physics, scenes and video: every option that works on the site today, what is being built right now and what comes next.

done
68
in progress
1
planned
1

Available now

“Done” means you can use it on the site today. How each input was tested: Works with your radio.

  • Radio & calibration

    • EdgeTX radio over USB (WebHID) in Chrome or EdgeDone
    • Calibration with a drawn radio that shows which stick to move; each step waits until you really move itDone
    • Reverse any channel after calibrationDone
    • Recalibrate button in ControlsDone
    • A known radio reconnects by itself, and stays connected when you change scenesDone
    • The flight-mode switch on your radio is found on the check screen, with no clickDone
    • Controllers recognised by themselves: a DJI FPV Remote Controller flies with no setup, and a 3-position switch sent as two buttons works as one switchDone
    • The controller check shows how often your radio or gamepad reports, with a note when Bluetooth adds delayDone
  • Controls & flight modes

    • Gamepad through the browser's Gamepad APIDone
    • Touch sticks and an ARM button on a touch screenDone
    • Keyboard, with every flying key shown on screenDone
    • Flight modes: Angle (self-levelling, the default for everyone), Horizon and Acro; M, the mode chip on screen or your radio's switchDone
    • Close Controls with × or Esc; the pause menu shows its keysDone
    • Easy play on a phone, tablet or keyboard: no arming, game keys with altitude help, and a pilot school from angle to acroDone
    • Keyboard and mouse like a game: click to fly, the mouse looks, W A S D move, Space up, Shift down, and the drone hovers when you let goDone
    • A How to fly card when the game opens: Space up, Shift down and every key, with Do not show againDone
  • Drone & tuning

    • Six BetaFPV-class presets: Pavo20 Pro 3S, Pavo20 Pro II 3S and 4S, Pavo Pico 2S, Meteor65 Pro 1S, Air65 1SDone
    • Betaflight, Actual, KISS and Raceflight rate curves (set through the diff import), checked against Betaflight 4.5.1Done
    • Import rates, PID and throttle curve from a Betaflight CLI diffDone
    • PID for each axis: P, I, D and FDone
    • Motor spin-up time 8–⁠80 ms and air drag 0.5–⁠2×Done
    • Three open-prop drones for big scans: a 5″ freestyle quad (iFlight Nazgul Evoque F5 class), a 5″ race quad (iFlight Mach R5 Sport class) and an X8 cinelifter carrying a RED Komodo (iFlight Taurus X8 class)Done
    • Prop wash on the open-prop drones: thrust lost and shaking while the drone sinks into its own downwash, 0–⁠2× per droneDone
    • Help tune a drone: send Andrii your Betaflight diff all, a blackbox log link and what feels different, or ask for a drone that is missingDone
    • A 3D model of every drone with its equipment; the cinelifter's camera load (RED Komodo, BMPCC 6K Pro, GoPro or none) changes its physicsDone
  • Gravity, crashes & respawn

    • Gravity: Earth and Moon (measured), Mars and zero-g (not tested yet)Done
    • On other worlds: same motors, keep thrust-to-weight or auto throttle (the last two not tested yet)Done
    • Crash threshold from 2 to 10 m/s, or crashes off: a wall only bounces you offDone
    • After a crash the drone is back by itself in 2 s, 5 s back along your path and still armed; R: the start, Y: rewind 5 s, Enter: keep the wreckDone
    • Start on an invisible pad at spawn height, motors on, until you lift offDone
    • Upside down or wedged and not moving: the drone goes a few seconds back by itselfDone
    • Replay the last 10 s after a crash; a list of replaysDone
  • Camera, view & video

    • Camera field of view 70–⁠150° and uptilt 0–⁠50°Done
    • Stable frame ↔ detail slider; quality steps down by itself when frames dropDone
    • HUD on or off; F3 shows frame timesDone
    • Reduced motion: a calmer crash camera (not tested yet)Done
    • Cinema mode: full detail and MP4 recording on Andrii's scansDone
    • Recording at 60 fps with F9 on Andrii's scans, with a recording dot and the time on screen, or auto-record every flight into a folder you chooseDone
    • Video from the flight log on Andrii's scans, from the summary panel or the replays: 60 fps at 1080p, 1440p or 4KDone
    • Simulator in English, Spanish, Polish or RussianDone
  • Scenes & SuperSplat

    • Any public SuperSplat scene by link or id, re-published versions (v2, v3…) too; scenes in the older PLY format do not open yetDone
    • Tabs: Andrii's scans, Recent, Favourites; filters for walls, type and flownDone
    • A SuperSplat tab with superspl.at's filters and sorting, a random top-rated scene and a star for favouritesDone
    • Change scenes without reloading the page: N next, Shift+N random, F next favourite; the radio stays connectedDone
    • After a crash, the next scene instead of a respawn, in random or fixed order: from Andrii's picks, your favourites or the scenes you flew (off by default)Done
    • Scene scale around the drone from ×0.25 to ×100 with [ and ] (Shift doubles a step) or the pause menu: fly a room like a city; kept for each scan, the walls scale with itDone
    • Share the scene you are flying: a link with a picture of your viewDone
    • Loading progress: stage, MB, speed, time left and retryDone
    • Big streamed scans stay sharp: levels of detail at full quality on a computer, a lighter budget on phones, and a broken detail file falls back to the plain scanDone
    • Scans appear as soon as they can be drawn; the loading card always moves and offers Fly now; a video export always finishesDone
    • Stochastic drawing by default on a computer; SuperSplat links with budget and stochastic open as SuperSplat draws themDone
    • Each scene opens at the size set for it (macro scans scaled up), and a shared link carries the sharer's scene settingsDone
    • N walks every curated scene in order, then goes on through SuperSplat; after a few crashes a hint shows how to change the placeDone
  • Walls & voxel grid

    • Walls built in your browser for scans published without them (up to 4 M Gaussians)Done
    • Walls (collisions) on or off with C, one choice for every scene, so it stays the same after a scene switchDone
    • Drop the floating specks of a noisy scan that turn into invisible walls, with a live preview of what goes; kept for each scan, the scan's author can set a defaultDone
    • Voxel grid over the scan or on its own, the scan hidden (V): solid cubes, wireframe, height colours or floaters in red, with its own opacityDone
  • Settings, stats & flight data

    • Every setting kept between visits, each drone with its own tune; export, import and reset one or allDone
    • A catalogue of every setting with its default, range and key, on this site and on GitHubDone
    • Flight stats when you disarm, like the goggles OSDDone
    • Summary panel: this flight's stats, every menu item and every keyDone
    • Save the flight log; export the trajectory as CSV or JSONDone
    • Measurements panel: display refresh, frame times, physics rate and the input in use; copy the report as JSONDone
    • Lifetime flight stats kept between visits; one button downloads them as CSV and JSONDone
    • Feedback from the simulator (B) and from every page of this site: a bug, an idea or cooperation; technical details are sent only if you agreeDone
    • Replies to your feedback come in the language you wrote inDone
    • Clean drawing by default for the best picture, presets for each kind of device, and a splat budget you can set yourselfDone
    • Stochastic drawing with frame accumulation, from SuperSplat's open-source viewer: a near-clean picture when the drone hovers, a choice in SettingsDone

In progress

Being built now.

  • Pavo20 Pro and Pro II physics tuned against the real quads: the blackbox log tools and the Betaflight dump import are ready, waiting for logs from the real quadsIn progress

Planned

Accepted and queued for the next builds.

  • Radio switches for respawn and rewindPlanned

Have an idea for the simulator?

Accepted ideas join this list marked “Pilot's idea”; no names are shown.

Suggest an idea

06How it works

Three steps from a scan to the air

No account, no download. The scene streams straight from SuperSplat into your browser.

  1. 01

    Pick a scan

    Pick one of 1,300+ walkable scans in the simulator's SuperSplat tab, one of Andrii's, or paste the link to any public SuperSplat scene.

  2. 02

    Connect your controls

    Plug in an EdgeTX radio in USB joystick mode (WebHID), use a gamepad, or fly with touch sticks.

  3. 03

    Calibrate, arm, fly

    Move the sticks once to calibrate, arm with the throttle all the way down — like a real quad — and go.

07Why it feels real

A quad that behaves like the one in your hands

An own flight model — four motors, a mixer and a rate PID — flying inside the real geometry of the scan.

  • Walls are solid

    Every physics tick sweeps the drone's body against the scan's voxel collision data, so a fast quad can't slip through a thin wall between frames.

  • Crashes are crashes

    Hit something hard and the quad tumbles and throws debris. Brush a wall gently and it slides along it.

  • Your rates, Betaflight's formulas

    Betaflight, Actual, KISS and Raceflight rate curves match Betaflight 4.5.1's own code with 0 error at 1880 points, both computed in double precision (in float32 they differ by at most 0.00063 °/s).

  • Replays you can trust

    Flights are recorded as stick input and replay deterministically: the same inputs always give the same flight.

  • Gravity is a setting

    Earth, Moon, Mars or zero-g. On the Moon the same drone gets extremely twitchy — the “keep thrust-to-weight” switch tames it.

Default craft

BetaFPV Pavo20 Pro class, 3S

Every number says where it comes from.

Wheelbase
93.7 mmmanufacturer
Motors
LAVA 1104 7200KVmanufacturer
Weight
70.1 g · 108 g with O3measured by Oscar Liang
Thrust-to-weight
>5:1manufacturer claim
Battery weight
≈ 45 gestimate
Duct size
≈ 30 mm radiusestimate

“Class” means the numbers follow public specs and measurements. BetaFPV does not endorse this preset.

08Settings catalogue

Every setting, key and drone, with its default and range

Generated from the simulator's own settings schema at every release: exactly what you can change today, nothing planned, nothing made up. Search it or filter by group.

settings
74
groups
11
keyboard keys
34
drone presets
9
rate-curve types
5
flight modes
3

Shown: 74 of 74

“Per drone” values are kept separately for each drone, “per scene” ones for each scan.

Flight

  • Flight modeDefaultAngle (self-levelling)Options3Keyboard shortcuts: M

    Angle levels the drone when you let go of the sticks; Horizon levels it too but flips at full stick; Acro holds the attitude, like a freestyle quad. M or the mode chip switches it; a mode switch set on your radio's check screen decides instead.

    • Acro (rate mode)
    • Angle (self-levelling) (Default)
    • Horizon (levels, flips allowed)

    flight.modeOpen in the simulator

  • Angle limitPer droneAdvancedDefault60°Range10–85°

    How far the drone tilts in angle mode at full stick: more tilt, more speed. Betaflight's angle_limit (60° by default).

    level.angleLimitDegOpen in the simulator

  • Angle strengthPer droneAdvancedDefault50Range0–200

    How firmly angle mode levels the drone and follows the stick: higher is snappier. Betaflight's angle strength (angle_p_gain, 50 by default): at 100 the drone reaches half the stick's tilt in about 70 ms instead of 100.

    level.strengthOpen in the simulator

  • Horizon strengthPer droneAdvancedDefault75Range0–200

    How firmly horizon mode levels the drone near the stick centre: higher levels harder. Betaflight's horizon level strength (75 by default).

    level.horizonStrengthOpen in the simulator

Crashes & respawn

  • CrashesDefaultOn

    Off: hitting a wall only bounces the drone off, the motors keep spinning. On: a hard hit is a crash.

    crash.enabledOpen in the simulator

  • Crash thresholdPer droneDefault4 m/sfrom the drone presetRange2–10 m/s

    Impact speed above which a hit counts as a crash; slower touches slide along the wall.

    physics.vCrashOpen in the simulator

  • Respawn after a crashDefaultOn

    On: after a crash the drone comes back by itself, nothing to press. Off: the crash panel waits for you.

    respawn.autoOpen in the simulator

  • Respawn delayDefault2 sRange0.5–10 s

    How long the crash plays before the drone comes back.

    respawn.delaySOpen in the simulator

  • Respawn atDefaultBack along the pathOptions2

    A few seconds back along your path, or the start.

    • Back along the path (Default)
    • The start

    respawn.targetOpen in the simulator

  • How far backDefault5 sRange1–30 s

    Seconds back along your path where the drone reappears: after a crash, when stuck, and with Y.

    respawn.rewindSOpen in the simulator

  • Invisible platformDefaultOn

    The drone appears on an invisible pad at that height and sits on it, motors on, until you lift off.

    respawn.platformOpen in the simulator

  • Stay armed after a respawnDefaultOn

    With the arm switch still on, the drone is armed right after a respawn: no switch flip.

    respawn.keepArmedOpen in the simulator

  • Reset when stuckDefaultOn

    Upside down or wedged and not moving: the drone goes a few seconds back by itself, like in Liftoff.

    respawn.unstuckOpen in the simulator

  • Fresh batteryDefaultAt the start (R, restart, new scene)Options3

    When the pack is full again.

    • At the start (R, restart, new scene) (Default)
    • At every respawn
    • Never

    battery.refillOpen in the simulator

Camera

  • Camera field of viewPer droneDefault115°from the drone presetRange70–150°

    How wide the FPV camera sees. Each drone keeps its own value; a change never moves the drone.

    camera.fovDegOpen in the simulator

  • Camera uptiltPer droneDefault20°from the drone presetRange0–50°

    How far the FPV camera tilts up; more tilt suits faster flying. Each drone keeps its own value.

    camera.uptiltDegOpen in the simulator

Display

  • Show HUDDefaultOnKeyboard shortcuts: H

    The on-screen display: arm state, flight mode, battery, speed and altitude. H hides every text on the flight view for a moment.

    display.hudOpen in the simulator

  • Stable frame ↔ detailAdvancedDefault1Range0–1

    Moves the render resolution and detail budget. Physics always runs at 1000 Hz.

    display.qualityOpen in the simulator

  • RenderDefaultAuto (this device's preset)Options3

    How the scan is drawn. Auto: your device's preset (the line under this row says which one was picked), normally the classic sorted drawing, which is smooth and keeps the scan's detail; the site's owner can change the presets. Stochastic skips sorting the splats and averages a noisy picture over the frames (SuperSplat's own renderer): when the camera is still it settles to the sorted picture within a few seconds, but in flight, in rooms, it is visibly noisier and softer than Sorted. On a strong GPU it is not faster in practice, and at 4K it needs more video memory. Sorted is the classic, smooth drawing. A link with ?stochastic (or ?stochastic=0) is obeyed when a scene opens; a choice made here while flying wins for that scene. Stochastic needs WebGPU in a desktop browser. Recording and the video export always draw sorted.

    • Auto (this device's preset) (Default)
    • Stochastic (SuperSplat)
    • Sorted (classic)

    display.drawingOpen in the simulator

  • Splat budgetDefaultAuto (link, scene or preset)Options7

    How many million splats the scan may draw at most. Auto takes the link's ?budget=, the scene owner's choice, or this device's preset (see the Render row). A link's ?budget= is obeyed when a scene opens; a choice made here while flying wins for that scene. More splats are sharper and slower; the quality governor still lowers it when frames are missed. Set it to what your device can do: it counts on a phone and a tablet too, up as well as down (a link's or a scene's number does not).

    • Auto (link, scene or preset) (Default)
    • 1 million splats
    • 2 million splats
    • 4 million splats
    • 8 million splats
    • 16 million splats
    • 32 million splats

    display.budgetOpen in the simulator

  • Device classDefaultAuto (recognised from this browser)Options5

    Which kind of device the site's drawing presets treat this as. Auto recognises it from the browser (the graphics adapter, memory, processor cores, touch screen and screen size); name the class yourself when the guess is wrong, for example a laptop that should draw like a strong desktop. The class sets the preset that Auto in Render and Splat budget stands for: the drawing, the splat budget and the resolution. You can still set Render and Splat budget by hand.

    • Auto (recognised from this browser) (Default)
    • Desktop or laptop, strong graphics
    • Desktop or laptop, weak graphics
    • Tablet
    • Phone

    display.deviceClassOpen in the simulator

  • Reduced motionDefaultFollow the systemOptions3

    A calmer crash camera without flashes; follows your system setting by default.

    • Follow the system (Default)
    • On
    • Off

    display.reducedMotionOpen in the simulator

  • Frame statsDefaultOffKeyboard shortcuts: F3

    Screen refresh, frame times and input-to-screen delay over the flight view. F3 switches it.

    display.frameStats

  • LanguageDefaultPage languageOptions5

    English, Spanish, Polish or Russian; by default the language of the page.

    • Page language (Default)
    • English
    • Spanish
    • Polish
    • Russian

    ui.languageOpen in the simulator

  • CrosshairDefaultOffOptions5

    A mark in the centre of the view for lining up a gap. Off by default, like a real FPV feed. Never drawn into your videos, hidden in cinema mode.

    • Off (Default)
    • Dot
    • Cross
    • Circle
    • Ring with a dot

    crosshair.shapeOpen in the simulator

  • Crosshair sizeDefault4 %Range1–20 %

    As a share of the screen's shorter side, so it looks the same on a phone and on a big monitor.

    crosshair.sizeOpen in the simulator

  • Crosshair colourDefaultGreenOptions7

    Pick one that stands out on the scan you fly.

    • Green (Default)
    • White
    • Yellow
    • Red
    • Cyan
    • Magenta
    • Black

    crosshair.colorOpen in the simulator

  • Crosshair opacityDefault0.8Range0.1–1

    1 is solid; lower lets the scan show through.

    crosshair.opacityOpen in the simulator

Sound

  • Motor soundDefaultOn

    The whine of the four motors and the prop wash, following your throttle. Silent while paused or after a crash. The page can only start sound after your first click or key press.

    sound.motorsOpen in the simulator

  • VolumeDefault15 %Range0–100 %

    How loud the motors are.

    sound.volumeOpen in the simulator

Controls

  • Stick modeDefaultMode 2Options2

    Which stick is the throttle in the calibration drawings: Mode 2 on the left, Mode 1 on the right.

    • Mode 1
    • Mode 2 (Default)

    input.stickMode

  • How touch and keyboard flyDefaultEasy play (game keys)Options2

    Easy play: no arming (the first key or touch starts the motors). On a keyboard it flies like a game: click to capture the mouse, move the mouse to turn and to look up and down, W A S D to move, Space up, Shift down, and when you let go the drone stops and hovers in place. On a touch screen: sticks with altitude help and a pilot school. Pilot: as a radio — the ARM button or Space, a throttle that stays where you leave it, Mode 2 keys (W/S throttle, A/D yaw, arrows pitch and roll). A radio or a gamepad always flies as a radio.

    • Easy play (game keys) (Default)
    • Pilot (as a radio)

    input.playOpen in the simulator

  • Altitude help (touch)DefaultOn

    The drone holds its height by itself; up and down (the left stick on a touch screen) climb and sink at a steady speed. Works in angle mode only: horizon and acro can flip, and there your throttle flies. Step 1 of the pilot school. The game keys on a keyboard always hold the height.

    input.altitudeHelpOpen in the simulator

  • Vibrate on a crashDefaultOn

    A short buzz when you crash with the touch sticks, on phones that allow it (most Android phones; not iPhone).

    input.hapticsOpen in the simulator

  • Mouse sensitivity (game keys)Default1×Range0.25–3×

    How far the drone turns and the camera tilts for a movement of the mouse. 1 is 0.1 degrees for each pixel of movement. Works with the game keys, while the mouse is captured (click on the view).

    input.mouseSensitivityOpen in the simulator

  • Invert the mouse up and downDefaultOff

    Off: moving the mouse away from you looks up, as in most games. On: it looks down, like a flight stick pulled back.

    input.mouseInvertYOpen in the simulator

  • Flight speed (game keys)DefaultNormalOptions3

    How fast W A S D and Space / Shift fly: slow 4 m/s across and 3 m/s up, normal 8 and 5, fast 14 and 8. A small drone cannot always reach the fast speed: it flies as fast as its tilt and the air allow.

    • Slow
    • Normal (Default)
    • Fast

    input.gameSpeedOpen in the simulator

  • Show "How to fly" when a scan opensDefaultOn

    A card with the keys, or the sticks, of the input you fly with: for a keyboard, Space up and Shift down, with the mouse and W A S D. It shows once each time you open the simulator. "Do not show again" on the card switches it off here too; K or the pause menu bring it back whenever you want.

    input.howToFlyOpen in the simulator

Drone & physics

  • DroneDefaultBetaFPV Pavo20 Pro class, 3SOptions9

    One of the presets: BetaFPV-class whoops, a 5-inch freestyle and a 5-inch race quad, an X8 cinelifter with a cinema camera; every number on its card says where it comes from. Each drone keeps its own settings.

    • BetaFPV Pavo20 Pro class, 3S (Default)
    • BetaFPV Pavo20 Pro II class, 3S
    • BetaFPV Pavo20 Pro II class, 4S
    • BetaFPV Pavo Pico class, 2S
    • BetaFPV Meteor65 Pro class, 1S
    • BetaFPV Air65 Freestyle class, 1S
    • iFlight Nazgul Evoque F5 V3 class, 6S
    • iFlight Mach R5 Sport class, 6S
    • iFlight Taurus X8 class with a RED Komodo, 6S

    drone.current

  • Camera loadPer droneDefaultRED KOMODO 6K rigOptions4

    What the cinelifter carries under its frame. iFlight sells the Taurus X8 without a camera and allows up to 3 kg; the motors stay the same, so the weight, thrust-to-weight and hover throttle change with the camera. Chosen on the drone picker's 3D view; the other drones ignore it.

    • RED KOMODO 6K rig (Default)
    • Blackmagic BMPCC 6K Pro rig
    • GoPro HERO13 Black
    • No camera

    drone.payload

  • GravityDefault9.81 m/s²Range0–30 m/s²

    Earth 9.81, Moon 1.62, Mars 3.72, zero-g, or any value in between.

    physics.gravityOpen in the simulator

  • Thrust on other worldsDefaultReal (same motors)Options3

    Same motors (honest), the thrust-to-weight you have on Earth, or auto throttle that hovers at stick centre.

    • Real (same motors) (Default)
    • Keep thrust / weight
    • Auto throttle (stick centre hovers)

    physics.gravityModeOpen in the simulator

  • Thrust-to-weightPer droneAdvancedDefault5from the drone presetRange2–16

    Maximum thrust divided by weight; the preset takes it from the manufacturer or an estimate.

    physics.twrOpen in the simulator

  • Motor spin-up timePer droneAdvancedDefault15 msfrom the drone presetRange8–80 ms

    How fast the motors reach a new speed; lower feels snappier.

    physics.tauMsOpen in the simulator

  • Air dragPer droneAdvancedDefault1×Range0.5–2×

    Scales the air drag of the frame: more drag slows the drone down sooner.

    physics.dragScaleOpen in the simulator

  • Duct dragPer droneAdvancedDefault0.6 1/sfrom the drone presetRange0–1.5 1/s

    Rotor and duct drag that damps a cinewhoop's speed and wobble.

    physics.ductDragOpen in the simulator

  • Propeller inertiaPer droneAdvancedDefault1×Range0–3×

    Scales the spin inertia of the props: more inertia softens throttle and turns.

    physics.propInertiaOpen in the simulator

  • Prop washPer droneAdvancedDefault1×Range0–2×

    How much thrust the drone loses, and how much it shakes, while it sinks into its own downwash (catching a dive or a fast drop). 1 = the preset, 0 = off. The whoops have no prop wash in the simulator.

    physics.propWashOpen in the simulator

  • Motor idlePer droneAdvancedDefault10 %from the drone presetRange0–15 %

    Motor speed at zero throttle, like Betaflight's DShot idle value.

    physics.idlePctOpen in the simulator

  • WindDefaultThe scan's windOptions4

    Moving air, as outdoors: it pushes the drone and carries it along, blows harder higher above the ground, and comes in gusts. The scan's wind is the one its author or the admin set for the place; live is the real wind there right now (scans with a known location); custom is your own wind for this scan.

    • Off (still air)
    • The scan's wind (Default)
    • Live at the place
    • Custom

    wind.modeOpen in the simulator

  • Custom wind: fromPer sceneDefault270°Range0–360°

    Where the wind comes from, in compass degrees: 0 north, 90 east, 180 south, 270 west. On a scan without a compass heading, 0 is the direction the scan faces at the start.

    wind.fromDegOpen in the simulator

  • Custom wind: speedPer sceneDefault4 m/sRange0–30 m/s

    Mean speed 10 m above the ground, as a weather forecast gives it. Near the ground it is weaker, higher up stronger. A small whoop already struggles at 8-10 m/s.

    wind.speedOpen in the simulator

  • Custom wind: gustsPer sceneDefault2 m/sRange0–20 m/s

    How far the wind rises and drops around its mean speed. Gusts come and go over a few seconds; 0 is a steady wind.

    wind.gustOpen in the simulator

Tune

  • PID gains (P / I / D / F)Per droneDefaultfrom the drone presetRange0–250

    P, I, D and feed-forward for roll, pitch and yaw, for each drone, as in Betaflight.

    tune.pidOpen in the simulator

  • Rates (stick curves)Per droneDefaultfrom the drone presetOptions5

    Stick curves for each drone: Betaflight, Raceflight, KISS, Actual or Quick, with Betaflight's numbers. Edit them here or import them from your Betaflight CLI diff; Copy as CLI puts the same rates on your quad.

    • Betaflight
    • Raceflight
    • KISS
    • Actual
    • Quick

    tune.ratesOpen in the simulator

  • Throttle curvePer droneDefaultfrom the drone presetRange0–100

    Throttle mid and expo, as in Betaflight, for each drone.

    tune.throttleOpen in the simulator

Scenes

  • Next scene after a crashDefaultOff

    On: after a crash the next scene loads instead of a respawn, and you start on its platform. The radio stays connected.

    scenes.autoSwitchOpen in the simulator

  • Scenes to rotate throughDefaultThe author's list, then SuperSplatOptions3

    Where N (next scene) and the next scene after a crash come from. Shift+N is always a random scene from the author's list; Shift+F is your next favourite.

    • The author's list, then SuperSplat (Default)
    • My favourites
    • Scenes I have flown

    scenes.rotationOpen in the simulator

  • OrderDefaultIn orderOptions2

    Random: every scene once before any comes again, never the one you are in. In order: one after another, round and round. The author's scenes come first, then SuperSplat in its own order. Left on the default, your own lists (favourites, scenes flown) still shuffle.

    • Random
    • In order (Default)

    scenes.orderOpen in the simulator

  • Include scenes without wallsDefaultOff

    Scenes without walls have no crashes: you fly through everything. Off: the rotation skips them (the author's own scenes always come).

    scenes.allowNoWallsOpen in the simulator

  • Scene sizePer sceneDefault1×Range0.25×–100×Keyboard shortcuts: [Shift+[]Shift+]

    Some scans are not in true metres, so the drone feels too big or too small. Or make a room huge and fly it like a mosquito, a chair as big as a house. From x0.25 to x100, around the drone; [ and ] change it in flight, x1.1 a press, with Shift x2. Kept for each scan.

    scene.transformOpen in the simulator

Walls and voxel grid

  • Walls (collisions)DefaultOn (per scan, set by its author)Options2Keyboard shortcuts: C

    Off: the drone flies through everything, no crashes. One choice for every scan: switched off here, the walls stay off on the next scan too. Until you switch them, each scan starts as its author set it (a noisy scan may start with the walls off). C switches it.

    • On
    • Off

    scene.wallsOpen in the simulator

  • Drop floating pieces under N blocksPer sceneDefault0 blocks (per scan, set by its author)Range0–64 blocks

    Noisy scans have floating specks that become invisible walls the drone crashes into. Every piece of the walls smaller than this many blocks (a block is 4×4×4 voxels) is removed, for this scan only. 0 keeps everything; the voxel grid shows what is left.

    scene.dropFloatersOpen in the simulator

  • Ignore collisions abovePer sceneDefaultThe scan's heightOptions3

    Outdoor scans often have specks floating in the sky that turn into invisible walls. Above this height nothing counts as a wall. The scan's height is the one its admin set; custom is yours, set in a panel that shows it on the scan.

    • The scan's height (Default)
    • Off
    • Custom height

    scene.ceilingOpen in the simulator

  • Custom ceiling: height in scan metresPer sceneAdvancedDefault10000 m (per scan, set by its author)Range-10000–10000 m

    The height in the scan's own coordinates, before Scene size: what "Show and set the height" stores for you. 10000 ignores nothing.

    scene.ceilingMOpen in the simulator

  • Voxel gridDefaultOffOptions3Keyboard shortcuts: V

    Shows the walls as voxels: over the scan, or instead of it (the scan hidden, you fly on the voxels). V switches it; a reload shows the scan again.

    • Off (Default)
    • Over the scan
    • Voxels only

    voxels.showOpen in the simulator

  • Voxel styleDefaultWireframeOptions4

    How the voxels are drawn. Floating pieces of the walls stand out in every style; "Floaters in red" colours only them.

    • Solid cubes
    • Wireframe (Default)
    • Height colours
    • Floaters in red

    voxels.styleOpen in the simulator

  • Voxel opacity over the scanDefault0.55Range0.05–1

    How solid the voxels look while the scan shows under them.

    voxels.opacityOpen in the simulator

  • Voxel opacity, voxels onlyDefault1Range0.05–1

    How solid the voxels look with the scan hidden.

    voxels.opacityOnlyOpen in the simulator

Recording

  • Frame rateDefault60 fpsOptions2

    60 fps by default, at a constant frame rate (what DaVinci and Premiere expect).

    • 30 fps
    • 60 fps (Default)

    recording.fpsOpen in the simulator

  • Video sizeDefault1080pOptions4

    Up to this height, never larger than the picture on screen.

    • 1080p (Default)
    • 1440p
    • 4K (2160p)
    • As on screen

    recording.resolutionOpen in the simulator

  • Auto-recordDefaultOff

    Starts when you arm, stops 3 s after you disarm, into the last chosen folder.

    recording.auto

  • New file everyAdvancedDefault10 minRange1–30 min

    A long flight is split into files: if the tab crashes, only the last part is lost.

    recording.splitMinOpen in the simulator

  • Whose scan it isDefaultOn

    The first video of a scan outside the showcase shows one line on the recording bar: whose scan it is, its licence, and that the video is yours to use and to credit.

    recording.authorNoticeOpen in the simulator

Keyboard shortcuts

In the simulator each key is shown next to its menu item.

  • Pause / resumeEscP
  • Back to the startR
  • Rewind 5 sY
  • Keep the wreck (no automatic respawn)Enter
  • Next sceneN
  • Random sceneShift+N
  • Next favourite sceneShift+F
  • Flight modeM
  • Arm / disarm (pilot keys)Space
  • Voxel grid: off / over the scan / voxels onlyV
  • Walls on / off for this scanC
  • Show or hide the HUDH
  • Scene smaller[Shift+[
  • Scene larger]Shift+]
  • Start or stop recordingF9
  • Frame times and delayF3
  • SettingsO
  • Report a bug or an ideaB
  • Share this sceneL
  • How to fly (the keys card)K
  • Full screen on / offF

Keyboard flying

No radio? These keys are the sticks.

  • look and turn (up and down tilts the camera)Mouse
  • forward / back (the up and down arrows too)WS
  • left / rightAD
  • turn without a mouse←→QE
  • upSpace
  • down (hold to land)Shift
  • self-levelling (ANGLE) or ACROM

9 drone presets

Every number says where it comes from: manufacturer, independent measurement or estimate.

Built from published numbers and estimates. Fly one of them for real and it feels different here? Send your Betaflight diff all, a blackbox log and a few words through the simulator's Drone physics form, or ask there for a drone that is missing.

Generated on November 8, 2026 from the settings schema. A setting that is still being built appears here the day it ships.

09Live numbers

We publish our own numbers because nobody else publishes theirs.

Each figure is read from the repository's evidence file when this site is built. If a measurement goes missing, the build fails.

Rate curves vs Betaflight 4.5.1

1880 points, max error 0 deg/s

Method
compiled Betaflight 4.5.1 rate functions vs our re-implementation
Date
2026-09-24

Flying through walls

0 wall pass-throughs in 200,000 straight passes

Method
swept test at 1 ms ticks vs independent resampling oracle; speeds 5, 10, 15, 25, 34.16 m/s; 3 real scans + 2 cm synthetic wall
Date
2026-11-08

Wall clearance, Pavo20 Pro

Pavo20 Pro body stops 47.2 mm (median) beyond its own size from walls on the 5 cm voxel collision of scene 39e63ce9

Method
swept approach along 200 directions from 12 points
Date
2026-09-24

Stick-to-screen latency

Display-limited

The test display runs at 30 Hz, so this result is bounded by the screen rather than by the simulator. It is published, but it is not gated.

Stick-to-photon latency with a camera has not been measured yet.

Output rate
28.2 Hz
Median
252.5 ms
95th percentile
295.4 ms
Blank-page floor
65.4 ms
Conditions:
DaVinci Resolve open on the same GPU (22.4 of 24.5 GB VRAM in use, GPU 20-52 %)
Method:
SendInput F13 (QPC) -> first Desktop Duplication frame whose marker shows that input; stock Chrome, fresh profile; N=220 per mode
Date:
2026-09-24

Values and methods are quoted from the evidence file as published, in English. Evidence file updated 2026-11-08.

All raw evidence on GitHub

11Works with your radio

What works with your radio today

An honest matrix: nothing is marked as tested unless it was, and so far that means emulation or a simulated radio.

  • Browser: Chrome, desktop

    Input: EdgeTX radio (RadioMaster TX16S, Boxer, Pocket, Zorro) as a USB joystick over WebHID

    Status: Tested in Chrome with a simulated EdgeTX radio — not with a real radio yet, and Edge not run yet

  • Browser: Chrome / Edge, desktop

    Input: Gamepad

    Status: Not tested on real hardware yet

  • Browser: Chrome / Edge, desktop

    Input: DJI remote as a gamepad

    Status: Not tested

  • Browser: Desktop Chrome, touch emulation (375×812, 1024×768)

    Input: Touch sticks

    Status: Tested in emulation only — Safari, iPad and Android browsers not tested yet

  • Browser: Firefox

    Input: Gamepad or touch sticks

    Status: Firefox 155 renders the scene with WebGPU and offers a gamepad or touch sticks (flying not tested yet); radios need Chrome or Edge (no WebHID)

Have an EdgeTX radio? A short test report helps a lot — use the contact form below or open an issue on GitHub.

12Why this is better

How it compares

Facts as of September 2026. “Unknown” means we could not verify it.

Comparison of ShramkoGSFPV with the SuperSplat viewer, browser splat-FPV demos and classic FPV simulators, September 2026
FeatureShramkoGSFPVWalking in the SuperSplat viewerBrowser splat-FPV demos (e.g. SplatFPV)Classic FPV simulators (fixed maps)
Real scanned placesAny public SuperSplat scene; the 1,300+ with walls in a built-in catalogueYesYes, one file at a timeNo, fixed maps
Drone model4 motors, mixer, rate PIDNone: a walking or flying cameraFirst-order rate filterFull
Your own ratesBetaflight, Actual, KISS, RaceflightNot applicableFlat max rate plus expoYes
Hitting a wallCrash and tumbleSlide along itStop or slideCrash
Collision sourceSuperSplat's voxel octree, swept testSuperSplat's voxel octreeRebuilt at load, point testHand-made meshes
Radio inputEdgeTX over WebHID, gamepad, touchGamepadGamepad APIUSB joystick
Published test numbersYes, see Live numbersunknownunknownunknown
InstallNoneNoneNoneYes
Source codeMITMITVariesClosed

Classic simulators are still the place to train for races on purpose-built tracks. This project is about flying real places.

13For your AI agent

Let your coding agent set it up

Paste this into Claude Code, Codex, Cursor or any coding agent. It installs the project, runs the checks and opens the simulator locally, and only asks you for passwords or physical actions.

Prompt
Set up ShramkoGSFPV for me by following https://github.com/AndriiShramko/ShramkoGSFPV/blob/main/AGENT_SETUP.md exactly. Install, run the checks, start the simulator locally and open it in Chrome. Do not change any system settings; ask me only if a step needs my password or a physical action.

Docs written for agents

14Risks & safety

What can go wrong

Short and honest, so nothing catches you by surprise.

  • Scene data can change without notice

    Scenes load from SuperSplat's public but undocumented CDN. It can change at any time, and some scenes may stop loading.

  • Some scans come without collision data

    For those, the simulator can build walls right in your browser with SuperSplat’s own tool (up to 4 million Gaussians, about 25 seconds for a 2.1-million scan on a desktop GPU). Bigger scans stay fly-through.

  • Motion sickness

    Crashes and fast flight can make you queasy, so take breaks. Measured over 50 crashes, effects flash at most 2 times per second, under the WCAG limit of 3; your reduced-motion setting is respected (not tested yet).

  • A simulator is not a real flight

    Practise responsibly, follow your local drone law and never fly over people.

  • Your data stays with you

    Calibration, flight history and favourites are stored only in your browser.

15FAQ

Questions people ask

How can I fly an FPV drone through a 3D Gaussian Splatting scan?

Open ShramkoGSFPV in desktop Chrome or Edge, pick a scan (1,300+ with walls in the SuperSplat tab, one of Andrii's or a pasted SuperSplat link), connect a radio, a gamepad or touch sticks, then calibrate, arm and fly. There is nothing to install.

Can I use my RadioMaster radio in the browser?

That is what it is built for: switch an EdgeTX radio such as the TX16S, Boxer, Pocket or Zorro to USB joystick mode and connect it over WebHID in Chrome or Edge. So far this has been tested only in Chrome with a simulated EdgeTX radio, not with real hardware or in Edge.

Is there a free FPV simulator that runs in the browser?

Yes. ShramkoGSFPV is free and open source under the MIT license. It runs on WebGPU in desktop Chrome or Edge, with no download.

Which SuperSplat scenes can I fly?

Any public SuperSplat scene, by link or id; the simulator's SuperSplat tab lists the 1,300+ published with walls, with superspl.at's own filters. Those have solid walls at once; for the others you can build walls in your browser with one click (scans up to 4 million Gaussians). Bigger scans can be flown through but not crashed into.

Does it work on iPad or phone?

Touch sticks have been tested only in desktop Chrome's touch emulation, not in Safari, on iPad or in Android browsers yet, and you need a browser with WebGPU. Radios need desktop Chrome or Edge.

Is the flight physics like Betaflight?

The rate curves (Betaflight, Actual, KISS, Raceflight) match Betaflight 4.5.1's own code with 0 error at 1880 points when both are computed in double precision, and a rate PID drives four motors through a mixer. It is our own flight model, not Betaflight firmware.

Do I crash into walls or fly through them?

On scenes with collision data you crash: the drone's body is swept against the voxel data on every physics tick, and a test harness checks that fast flight cannot tunnel through walls. See Live numbers for the result.

Is it open source?

Yes, MIT. Code, measurements and design decisions are on GitHub. Betaflight's formulas were re-implemented; no GPL code was copied.

Can the simulator take me to a new place after every crash?

Yes. Random top-rated in the SuperSplat tab opens a scan you have not seen, Shift+N loads a random scene in flight, and with “Next scene after a crash” switched on every crash takes you to another scene: from Andrii's picks, your favourites or the scenes you have flown, in random or fixed order. The radio stays connected.

Can I fly a room as if it were a city?

Yes. Scene size scales the whole scan around the drone from ×0.25 to ×100 with [ and ] (Shift+] doubles it) or in the pause menu. At ×100 a chair is the size of a tower block and you can dive along its legs; the walls scale with the scene, so you still crash into them. The scale is kept for each scan.

Can I fly my own 3D scan?

Yes. Publish it on SuperSplat (superspl.at) and paste its link or id on this page or in the simulator. Published with walls (voxel collision data), it is solid at once; without them you can build walls in the browser for scans up to 4 million Gaussians.

Can I help make a simulator drone fly like my real one, or ask for a new drone?

Yes. The drones are built from published numbers and estimates: BetaFPV-class whoops, an iFlight Nazgul Evoque F5 class 5-inch freestyle quad, a Mach R5 Sport class 5-inch race quad and a Taurus X8 class cinelifter carrying a RED Komodo. If you fly one of them for real and it feels different, press Help tune it in the drone picker or in Settings and send your Betaflight diff all, a link to a blackbox log and a few words; Andrii fits the drone to it. The same form asks for a drone that is not in the list.

16Open source

MIT-licensed and built in the open

Code, measurements and every design decision live on GitHub. Pull requests, test reports from real radios and new scans are welcome.

Built on the work of others

  • PlayCanvasMIT

    The engine that renders the scans, and the SuperSplat viewer, whose collision code is vendored here.

  • RapierApache-2.0

    Deterministic physics for the crash: the tumbling craft and its debris.

  • BetaflightGPL-3.0

    Rate and PID formulas were read from Betaflight 4.5.1 and re-implemented. No GPL code was copied.

  • SplatFPVMIT

    An earlier browser experiment that showed FPV through splats is possible. No code was taken.

17Contact

Let's build it together

Andrii Shramko

FPV pilot and 3D Gaussian Splatting specialist, author and maintainer of ShramkoGSFPV.

Always open to interesting people — and ready to help teams build incredible projects.

I'm looking for FPV pilots, scanning studios, drone vendors, investors and developers — for partnership, licensing, integration or funding. Tell me who you are in one click.

Collaboration request

I am a…

0/500

To send, add who you are, a valid email, and your consent.

Feedback

Found a bug, have an idea, or want to work together? Andrii reads every message.

Leave your e-mail if you want an answer: it is used only to reply to you.

Only with this box ticked, the report also carries:

  • the site's release
  • your browser, screen size and languages
  • the address of this page
  • the page's recent error messages

Nothing else: no cookies, no files, no personal data.