Progress log
Moveee Indoor versions
Moveee Indoor's own version history — the browser trainer world, shared rooms and route scenery, separate from the rest of the app. Currently on Moveee Indoor v0.4.32.
v0.3.33
Moveee Indoor: the seaside is the one on the map — materials, lighthouses and harbour cranes
2026-07-22- Changed The shore is made of what OpenStreetMap says it is made of. Its `surface` tag now decides the material and colour — pebble, sand, shingle, gravel, bare rock, mud, or the concrete bathing platforms that are the real Adriatic town beach — and the apron is as wide as the mapped beach actually is, measured inland from the coastline, so a broad strand and a two-metre ledge no longer look alike. Checked against the map: between Izola and Koper the beaches OSM tags are pebblestone and concrete, not sand.
- Fixed Stretches of coast that had no beach at all now have one. The side the water lay on was decided from a single point in the middle of each stretch, so on a headland, in a narrow inlet or along a spit — where that one point could not tell — the whole stretch was left bare. The question is now asked along the entire stretch.
- New Lighthouses are built where OpenStreetMap has them: a tapered tower in painted bands with a gallery and a lit lantern room. Built from shapes rather than a downloaded model on purpose — the coast is drawn before the model packs finish loading, so a modelled lighthouse would turn up minutes into the ride.
- New Harbour cranes, too — the container gantries that are the whole skyline of a working port. Koper maps 26 of them. They and the lighthouses are read from much further out than ordinary roadside objects, because that is how far away you see them.
v0.3.32
Moveee Indoor: bridges sit on the road, and big ones look the part
2026-07-22- Fixed Bridges no longer hover in the air above the road. Two things were lifting them: OpenStreetMap's layer tag (which only says "this way is above what it crosses", not by how much) was being converted into metres of height, and the deck ends started 60 cm above the ground while the roads leading in run at ground level. A bridge deck now meets the approach road exactly at both ends and carries the ridden tarmac across — the air below the span is real, coming from the dip or the carved river underneath. Bridges on the road you ride also follow your road's own elevation much more reliably.
- Changed A big bridge that OpenStreetMap tags only as "a bridge", with no word on its structure, now takes its look from its real length — a really long span gets suspension towers and cables, a long one a steel truss, a short one stays a simple deck. Where the map does say what the bridge is (stone arch, steel truss, timber boardwalk…), that always wins, whatever the size.
- Fixed On sharp climbs and descents a coloured field could still lie across the road. The ground is held under the tarmac at every terrain point near the road — but big fields were drawn with triangles tens of metres wide, and between two far-apart points the surface could rise straight over the tarmac on a slope. Field triangles near your road are now split down to about three metres, small enough that any triangle able to touch the road is pinned below it at every corner — so its surface cannot rise over the road anywhere in between. This is a geometric guarantee, not a tuning tweak.
v0.3.30
Moveee Indoor: only turns worth taking are offered
2026-07-22- Changed Turn choices at junctions now skip roads that lead nowhere: a turn is only offered when at least a kilometre of road is reachable through it before you would be forced back through the same junction. Cul-de-sacs, driveway stubs and little loops that dump you straight back where you turned no longer appear as choices — on a typical route that trims about a fifth of the clutter while every real road stays. The street you are already riding can always be continued to its end.
v0.3.29
Moveee Indoor: town signs greet you even on the outskirts
2026-07-22- Fixed Passing a town on its outskirts often showed no name sign, and cities never showed one at all — the sign only knew about settlements whose centre point sat within 400 m of your road, and cities were not even asked for. Settlements are now read at a range that matches what they are (a city from 3 km, a town from 1.5 km, a village closer in), and the sign stands beside the road at your closest approach whenever that pass is genuinely within the place's extent — a city greets you from over a kilometre out, a hamlet only up close.
v0.3.28
Moveee Indoor: roundabout approaches fuse into the ring like real ones
2026-07-22- Fixed Roundabout entrances and exits now merge cleanly: each approach follows its real road's line into a flared bell mouth that meets the ring edge-to-edge — no more gaps, stubs or sideways kinks where roads joined.
- Improved Kerb lines run continuously from the road, around each mouth's flare, and along the ring — the ring opens exactly where each mouth's edges land, whatever the road's width or angle.
v0.3.27
Moveee Indoor: the mapped shore's outer limits are a hard limit for the sea
2026-07-22- Fixed No more sea inside Koper. The shoreline data is fetched in a corridor around your route, and where a shore way was cut off mid-harbour the classifiers kept extrapolating water past the cut — into the city's streets. A clipped end of the mapped shore is now a hard limit: any point whose closest approach to the shore falls past one is land, full stop. On the Izola route that removes roughly ten thousand cells of phantom water while leaving the real shoreline untouched.
v0.3.26
Moveee Indoor: turn off your route and ride the real streets
2026-07-22- New Free-roam riding. As you approach a real junction, turn chips appear over the ride — pick one with the arrow keys and ride through it to take the turn; do nothing and you stay on your route exactly as before. Off the route you ride the actual mapped streets: forks keep offering choices, a road that simply continues is followed without interruption, a dead end turns you around, and when you arrive back at a junction your route passes through, riding through on the default puts you straight back on it. Gradient and trainer resistance follow the road you are actually on.
v0.3.25
Moveee Indoor: every road meets yours as an equal
2026-07-22- Fixed Side roads no longer duck beneath the road you ride: every junction now carries the crossing road at your road's level and grades it smoothly down onto its own line.
- Fixed Roundabouts are complete junctions from every direction — all arms rise to meet the ring the same way, so a far-side exit looks exactly like the one you rode in on.
v0.3.24
Moveee Indoor: the foam behaves like a real seaside
2026-07-22- Changed The foam is properly irregular now — flecks in loose, uneven patches instead of the faintly regular rows the old pattern produced — and each patch quietly appears, lingers and dissolves on its own ten-to-fifteen-second cycle, at a random offset, the way real whitecaps come and go. Still no measurable frame cost.
- Fixed The shallow-water tint blends smoothly out from the shoreline. It used to change in one hard line across the water, because each map square carried a single flat tone; the shore distance now ramps continuously across every square.
v0.3.23
Moveee Indoor: roundabouts rebuilt to match their real-life look
2026-07-22- Improved Roundabouts now follow their real mapped shape — an oval roundabout renders and rides oval, not as a forced circle.
- New Raised splitter islands separate the entry and exit lanes on every approach, with give-way signs standing on them at bigger junctions.
- New Street furniture scales with size like real life: mini roundabouts are just the painted disc, big ones add zebra crossings, lamps and planted centre islands.
- Changed Roundabouts are classified as intersections in the world — their own kind of object, separate from roads and buildings.
v0.3.22
Moveee Indoor: beaches under the water, foam on it, and no more phantom lagoons
2026-07-22- New The waterline reads as a beach now: the ground entering the sea turns wet sand and then sediment grey-brown instead of staying lawn-green under the water, and the water itself runs lighter over the shallows near the shore and deeper blue out at sea.
- New White foam drifts slowly across the water — dense little breakers along the shore, sparse whitecaps out in the open. It is drawn entirely on the graphics card as part of the one existing water surface: no new objects, no per-frame work on the processor, no measurable frame cost.
- Fixed Phantom water pockets behind harbours are gone. Around a concave port like Koper, deciding sea-or-land by the nearest stretch of shore alone let patches inland of the quays count as sea. Every candidate near the shore is now also checked against the one certain fact — the route you ride is on land — by counting how many times the line from it to the route crosses the shore, from three directions. What remains as water at Koper matches its real port basins and the Škocjanski zatok lagoon.
- Changed Still water stays still: the foam and shading move as colour only — the surface itself does not ripple, so the water's edge stays exactly on the coastline.
v0.3.21
Moveee Indoor: every real road for 3 km looks like a road
2026-07-22- New Groundwork for free-roam riding. Every real road around your route — from main roads down to village streets, out to about three kilometres — is now drawn as a proper road: pale kerb bands and an asphalt surface, following the land, dipping under your road where it crosses. Driveways, farm tracks and footpaths stay as simple strips. The whole network costs almost nothing to draw, and nothing can be planted on those roads any more — they are the roads you will soon be able to turn onto.
v0.3.20
Moveee Indoor: the coastline is exactly where the map says it is
2026-07-22- Fixed The water meets the mapped coastline everywhere — measured against every OpenStreetMap shore segment on the Izola route, 98% of the coast has water exactly at the line (the rest is Koper's harbour piers, thinner than the terrain can carve). Land that used to stand between the sea and the shoreline is pulled down to a low bank so the water reaches the line, while anything tall enough to be a real cliff coast is left standing — and the ground under the road never moves.
- Fixed Water reaches the town waterfront. The road used to keep a whole 40 m map square dry around itself, which held the sea a block away from Izola's quay — exactly where you ride. The road now keeps a verge measured in metres instead, so the water comes up to the quay with the tarmac untouched.
- Fixed Water can no longer spill past the coastline at a corner: the refined shore band is one square wider on every side, so the sea surface can only ever extend toward open water.
- Changed The sea is still now — the vertex waves are gone. A flat sheet keeps its edge exactly on the shoreline; the swell was pushing water over the shore apron on every crest and opening sky under it in every trough.
v0.3.19
Moveee Indoor: a real shoreline — sand, pebbles and rocks along the mapped coast
2026-07-22- New The coastline is a place now, not a seam. A foreshore runs along the mapped OpenStreetMap coastline: sand where OSM maps a beach, bare grey rock where it maps rock or scree, and the narrow pebble foreshore typical of the Slovenian coast everywhere else — with rocks standing half-submerged off the rocky and pebbly stretches. Through a marina the foreshore steps aside, because a harbour edge is quays and moorings, not beach.
- Fixed The sea stops at the coastline. The water's edge used to be built from 40 m squares, which either left it visibly short of the shore or pushed whole squares of water past it; squares the coastline crosses are now refined to 5 m so the water follows the mapped line, and the foreshore covers the last seam. The waterline strip that could reach across a road on the town waterfront is gone with it.
v0.3.18
Moveee Indoor: server map fixes now reach your browser
2026-07-22- Fixed Map scenery fixes made on the server now take effect in your browser immediately. The browser keeps its own 30-day copy of every map stretch, and its cache key never learned about server-side map updates — so a stretch cached with a fault (Izola's missing sea) kept replaying from disk no matter what the server had re-read since. The server's map version now rides along in the route data and turns the browser's copy over automatically; every earlier fix to the Izola coastline finally lands.
v0.3.17
Moveee Indoor: the world copies far more of the real map
2026-07-22- New Buildings wear their real mapped colours and materials — a red-roofed village square renders red-roofed, a brick factory renders brick.
- New Forests follow the map's leaf type: a tagged pine forest plants pines, a beech wood plants broadleaves.
- New Guard rails line the descents, and real traffic lights, stop signs and zebra crossings appear where the map has them.
- New Wayside shrines and crosses, hunting stands, water towers, factory chimneys and storage tanks, dams and weirs, and cemetery headstones — all placed from the real map.
- New Mountain passes get a named roadside sign with their elevation, like summits already do.
- New Schools, police and fire stations get their own recognisable look, and airfields render their runway and mown apron.
v0.3.16
Moveee Indoor: your ride is never lost to a bad connection
2026-07-22- New A finished ride is now kept on your own device until the server confirms it is filed, so a dropped connection, a closed laptop, or an app update at the wrong moment can no longer lose it. Saving retries by itself, and anything still unsaved is offered back the next time you open Indoor.
- Fixed Saving the same ride twice can no longer create a duplicate entry in your calendar.
v0.3.15
Moveee Indoor: a dropped coastline is no longer believed for a month
2026-07-22- Fixed A stretch of a coastal route could end up with no sea at all for thirty days. Map scenery is fetched from OpenStreetMap in stretches and each answer is kept for a month; an answer counted as good if it contained anything at all, so a stretch that came back with its buildings but its coastline missing was filed away as a place with no sea. It is pure luck of the moment — on the Izola route the same stretch answered with a full set of coastlines one minute and none the next — and whichever landed first was the one you were stuck with. A missing shore is now checked against a second, cheap question before it is believed: only a definite "there is no coast near here" is kept, and anything else is re-read within a minute.
- Fixed Stretches that had already filed away a missing coastline are re-read, so routes affected by the above get their sea back instead of waiting for the month to run out.
v0.3.14
Moveee Indoor: a bridge carries no grass
2026-07-22- Fixed Bridges no longer have strips of land hanging off either side. The road's grass verge runs the length of the route, and over a bridge it was carrying on straight across — leaving green shoulders floating above the water beside the deck. The verge is now cut back wherever it reaches over a river, so a bridge is only bridge: deck, parapets and the arches beneath. The banks either side of the water are untouched.
- Fixed The teal trees lining the road are finally a natural forest green — the previous pass only reached the textured tree packs and missed the flat-coloured ones that make up most of the woodland you actually ride past. Their pale trunks are untouched.
v0.3.12
Moveee Indoor: the sea is drawn with the first scenery, not last
2026-07-22- Fixed The sea is built among the first things in view instead of after everything else, so it is there as you set off from a seaside start rather than appearing once you are already kilometres down the road. Two things kept it waiting: the check for whether a feature sits beside the road never recognised a stretch of coast, so every one of them scored as far away and queued behind the whole near field — thousands of buildings, on a town route like Izola — and the sea was also left on the same tier as background greenery while ponds and rivers were already treated as important. It now ranks with them.
v0.3.11
Moveee Indoor: billboards removed
2026-07-21- Changed The city-props billboard has been removed from the world — it no longer appears along roads through towns.
v0.3.10
Moveee Indoor: smoother riding through dense cities
2026-07-21- Improved Cut the cost of drawing buildings roughly in half in busy city centres (like central Ljubljana) — each building now takes about two draw calls instead of five, with no change to how it looks — so the frame rate holds up better where hundreds of buildings are on screen at once.
v0.3.9
Moveee Indoor: trees in a warmer, natural green
2026-07-21- Changed The low-poly background trees are no longer a minty teal — their leaves are recoloured to a deeper, natural forest green that sits with the rest of the scenery, while trunks and the already-green trees are left as they were.
v0.3.8
Moveee Indoor: rivers pass properly under bridges
2026-07-21- Fixed Where a road bridges a river, the water now runs cleanly underneath with open air below the deck, instead of the water climbing up to the bridge and the ground filling the span. The river bed is carved right through under the bridge (the deck is on piers, so there is real clearance below it); previously the bed was held back from the road on both sides, which left an un-carved lump the water rose over.
- Fixed Trees no longer stand in the middle of the river — they keep to the banks.
- Fixed The water surface flows smoothly instead of jumping up over small bumps in the ground; a rise in the bed can no longer spike the river up out of its course.
v0.3.7
Moveee Indoor: power lines stay near the road now
2026-07-21- Fixed Power lines no longer trail their pylons and wires off across kilometres of distant terrain — a line is now only drawn where it runs within ~320 m of the road you're on, so free-camera fly-arounds stay smooth and the far horizon isn't cluttered with power towers you never ride past.
v0.3.6
Moveee Indoor: the sea is at the right height the moment you spawn
2026-07-21- Fixed On a coastal route the sea now sits at the correct height from the first frame, instead of sitting too high at the start and only settling once you had ridden a few kilometres (or gone the other way round the loop first). The sea level was found by combining readings from the coast as each stretch streamed in, so at the spawn only the starting stretch was known — and where that is a harbour, its raised quays pushed the water up until more open coast loaded. The level is now seeded up front from the route's own elevation profile (it runs at its lowest where it meets the sea), so it is right immediately and the streamed-in coast only refines it.
v0.3.5
Moveee Indoor: nothing renders off the edge of the land any more
2026-07-21- Fixed Power lines (and ski-lift cables) no longer march their pylons and wires out over the empty void past the edge of the terrain — every object is now hard-clipped to the land, so a mapped line simply ends cleanly at the terrain edge. The same clip covers forests, crops and factory scatter, and nothing is ever placed out over the sea.
v0.3.4
Moveee Indoor: foliage no longer costs you FPS
2026-07-21- Fixed The wider roadside foliage was dropping frame rate — it now draws only the grass and weeds actually in view (instead of every plant in an 8 km stretch at once) and is tuned to a lighter density, so the greenery still looks full but the ride runs smoothly again. It also respects the scenery-density setting for weaker devices.
v0.3.3
Moveee Indoor: rivers sit in a real carved bed
2026-07-21- Fixed Rivers now sit down in a proper carved valley instead of a flat blue strip laid on the grass, and the land can no longer show through the water. The ground itself is dished down along each river — deepest along the water, smoothing back up to the natural land on both sides — so the water has real depth and the banks are formed by the sloping ground. The valley is sized to the terrain so even the coarse landscape mesh follows it down cleanly (the earlier version dropped the water but left the land flat above it, which is why the riverbed wasn't visible and the land appeared over the water). Wider rivers get deeper valleys; the bed only ever goes down, never up; and it is still held clear of the road so a crossing dips under as a culvert.
- Fixed Power lines no longer march their transmission towers kilometres out beyond the map into empty space — the towers and their wires now stop at the land's edge, so distant scenery you can never reach stops dragging your frame rate down.
- Fixed Forests, fields, vineyards, factories and cable-car pylons that overlap the edge of the mapped land now keep only the parts sitting on real ground, instead of scattering objects out over nothing.
v0.3.1
Moveee Indoor: greener roadsides — foliage spreads into the fields
2026-07-21- Improved Grass, weeds and wildflowers now fill a much wider band beside the road — reaching about 30 m out into the fields instead of a thin strip on the verge, and roughly three times denser, so the land next to you looks lush and alive rather than bare.