▶ Play Meridian ▶ Solo demo ▶ Scale test (50 clients) Works on desktop and phones. A one-minute tour starts by itself. The checks below are for testers. The scale test uses this machine's dev server and lighthouse (npm start), not GitHub Pages.

Meridian — what this build shows

Newest check first. npm start only serves these files and introduces browsers. It does not decide a hit, a dig, or a death. Press q in that server console to stop it. Q in a browser window does nothing.

A check opens one window with three labeled frames. The wide green frame is the primary test, and it keeps the instructions. The amber frame is the other client. The violet frame follows 3.5 m behind. Those two hide the instructions and keep the status line. Pits, walls, and shots reach the follow frame on the same channels as any other client.

Pass means the sentence under the check actually happens. A red error, two different results, or a page that stays on “waiting” is a fail.

1. Archive

Open the archive and leave it open. It has no body and no picture. It mines. Then open a walk. The walk line gains archive once the two are linked. Dig. The line says provisional until a block lands, then block 1 official. Close both and open them again. The archive is the same keeper. The hole is still there. The walk is the same person, with the same skills and place.

Pass: the archive leaves idle for mining, then the walk and the other two frames show block 1 official and the same hole. The archive's keep rises by 10. A lighter fork does not replace that hole. The page does not mint the crate or pay the bounty. The keeper note is the schedule.

Open the archive · Open the walk

2. Strike at the gate

The wide frame starts just south of the compound. Walk north a step. The line says atoll-skirmish. Press E.

Pass: strike south, scrip 800, and metal 30. Press B while the line says buy. Pass: smoke and scrip 500. Metal is still 30. The line rifle does not sell. Hold the bit or the hammer and it says frozen. Walk back out and wait 5 seconds. Pass: beach, and the scrip does not become a payout.

Open the gate

3. Reflections

The sand reflection is one smooth bounce, so the view stays live. Look up and to the right: the sun is the bright disc, and it is the light. Lit sand is warm. A wall or the dummy throws a shadow. The sun shows in the sand as one glint, not stripes. If a frame stalls, the picture shrinks instead of freezing.

Pass: look down and the sand is grain, not a flat brown, with the sky in it. From the pad, the dummy wears red and cream rings and shows the beach and the sky on its curve.

Open the walk

4. Pace

Open the walk and leave this window focused. The corner reads a frame rate, and the line ends in vsync and a pixel size. The picture follows the screen.

Click another window so the walk is still visible but not focused. Pass: the corner falls to about 1 fps and the line says 1fps. Click the walk again and the corner climbs back with the screen. If a frame stalls, the picture shrinks on its own instead of staying frozen at full size.

If a frame takes longer than the screen, the pixel size steps down until the picture keeps up. It steps down further if that is what it takes to stay near 30 fps, and steps back up when the frames are short. The floor is a quarter of the window.

Open the walk

5. Wall on the ruin

Press 3 until the line says hammer. The amber square is its sight. Walk north to the stone slab. When the ground beside it is in reach, the square goes bright and the cell lights up. Hold the left mouse. Pass: a cyan column rises on that cell and the line counts work for 12 seconds. Then the wooden wall stands and the line says wall and metal 24. Look at the wall and the sight names it. Right-click. Pass: salvage, the wall is gone, and the metal is 30.

Right-click the wall. Pass: it says salvage, the wall is gone, and the metal is 30. The same hold on empty sand says support and the metal does not change. The other tab, if it is connected, shows the same wall and still has metal 30.

Open the walk

6. Shared shot

Two walk tabs, both opened from the pad. Wait until one says offered and the other answered. Tab A clicks the dummy.

Pass: both lines say chest 28 and dummy 72. split means the other tab did not see the same hit, and that shot does not count.

Tab A · Tab B

7. Shared pit

The same walk, in two tabs. Press 3 until the line says bit. Tab A looks down and holds the left mouse. Tab B looks down at the same sand.

Pass: both lines show voxel 500 and the same hash. The darker pit is in both pictures. Open either tab first.

Tab A · Tab B

8. Certified dig

Tab A proposes one voxel. Tab B signs the vote. Both apply the same op. You do not aim it.

Pass: both pages leave waiting, then log applied, the same hash, and voxel 500. The line voxel before is negative. Open either tab first.

Tab A · Tab B

9. Signed shot

A fixed shot from the accuracy pad into the dummy. You do not aim it.

Pass: one log says offered, the other answered, then tab A logs verified hit and tab B logs traced hit. Open either tab first.

Tab A · Tab B

10. Position

Two browsers trade an unreliable position. No island is drawn.

Pass: both logs say waiting for the other tab or waiting for the offer, then offered or answered, then snap open and remote x,y,z lines that change. Open either tab first. lighthouse failed means npm start is not running.

Tab A · Tab B

11. Walk

You stand on the south beach, looking north. The ground is the integer crust. The sky is blue because the sun is up. With WebGL2 the picture is sharp. Without it, you get the coarse 160×90 fallback.

Click the picture, then look with the mouse. W A S D move. A and D strafe; they do not turn you. Shift sprints. Space jumps and lands. Walk north and the wooden compound gets closer.

Press 3 until the line says bit. Look down and hold the left mouse. Pass: a darker pit opens, and the line reads voxel 500.

Press 1 for the line. The pad view is already aimed at the dummy. Click it. Pass: chest 28 and dummy 72. Four hits and it reads dummy dead, then it stands back up after 5 seconds.

Open the walk