Rooms

What a live room is, who can start one, and what everybody in it sees.

What it is

A room is a live session on one project. Everybody in it works on the same circuit at the same time, with each person's cursor and selection drawn on the canvas and an avatar bubble under the project title.

Behind it is one server-side room per project holding the document and an append-only log of operations. Every browser keeps three things: the document as the room has it, its own edits that have been sent but not yet acknowledged, and what is on screen. Editing is instant because the canvas is not waiting for anybody.

Starting one

Open Share in the editor and set the Access level row to Anyone with the link can watch live or Anyone with the link can edit live. Choosing one starts the room; moving off it again ends the room. Starting one needs a signed-in account, on any plan, because it is your project and your link. The plan decides how many people fit: two on Free, five on Pro and the student price, forty-one on Teacher and no limit on a school's plan (see how many people fit).

Signed out, the sheet offers sign-in rather than a button that does nothing. Joining somebody else's room is free on any plan, which is the whole point of a class link.

What is shared, and what is not

The diagram and the files are shared. A part moved, a wire recoloured, a line of C++ typed: those are operations, and they go to everybody.

The simulation is not shared, by never being in an operation. Thirty students in one room each run the circuit on their own machine. That is why a class of thirty costs the server nothing to run and why one slow laptop does not slow anybody else down.

Levels. A small number beside somebody's face in the people row, and on their cursor, is their learning level; hover over it for the level's name. It comes from their account, not from their browser, so nobody can show a level they have not earned. It is there only if they show their level on their profile page and the page is not hidden, and never for a student in a class, because a school's privacy agreement does not publish a student's progress. Guests have none. A level earned during the session shows the next time that person joins.

Conflicts

Operations are whole-part: a move, a delete, a file version. When somebody else's edit arrives while yours are in flight, yours are replayed on top of the new document. A pending edit that no longer makes sense, because it moved a part the other person deleted, is dropped and reported rather than applied to the wrong thing.

Going offline

Nothing about editing changes. Your edits keep being collected, the indicator says the connection has gone, and the client reconnects with backoff. On reconnect everything waiting is replayed onto the room's current document, so an edit made with the network down lands when the network comes back.

Undo

A remote edit is written into your undo stack as well as onto your canvas, so undo on each side takes back only that side's work. Without that, undoing your own move would restore a document that never had the other person's part in it, and the next change would delete it for everybody.

Following somebody

Press a person's face in the Live bar across the top of the canvas, or their bubble under the project title, and your canvas eases on to their view. Press it again to stop. A viewer on a watch link can follow too.

While you are following, a thin frame in that person's color sits around the canvas and a pill says Following with a Stop button on it. Their pointer is drawn as a soft ring as well as the usual arrow, because "look here" is most of what following is for.

Anything you do on the canvas yourself takes it straight back: a pan, a zoom, a pinch, a drag, or a key. The pill says You moved, so following stopped for a couple of seconds and then goes. If the person you were following leaves the room, it stops and says that instead.

What travels is a viewport (the world point in the middle and how far in it is zoomed, not a pan offset), so a projector, a laptop and a phone all end up with the same circuit in the middle of whatever they have. It rides the presence frame at about fifteen a second, and only while somebody is actually following, so thirty people do not fan out thirty views nobody is watching. Anyone who has asked their machine for less motion gets the view put straight up rather than eased.

Following is local. Nothing about it is an operation, nothing is in the document, undo never sees it, and the room stores none of it.

Being followed, and bringing everyone

When people are on your view, 3 following appears beside your own face in the Live bar.

The room's owner gets one more button there: Bring everyone here. It asks everybody else in the room to follow this view. It shows only to the owner and only once there is somebody to bring, it is rate limited so a held key cannot yank thirty screens about, and nothing is remembered. Each person stops it the way they stop any other follow, and somebody who joins a minute later is not dragged anywhere.

A countdown, and hands up

Two things in the Live bar are for running a lesson rather than for drawing a circuit.

A countdown. If the project is yours, press Timer in the bar and pick 1, 2, 5, 10 or 15 minutes, or type a number of minutes and press Start. Everybody in the room sees the same reading, because the room holds the moment it ends rather than a number each browser counts down on its own: a laptop that slept, or one whose clock is five minutes out, still counts to the same zero. Pause holds it where it is and Resume carries on from there, so a countdown stopped for a question comes back with the seconds it had. At zero it flashes once and stays on 0:00 until you press Clear, so a class that looked away can still see that the time went. Somebody joining halfway through walks into the countdown already running.

Hands up. If the room is not yours, the bar has a Hand up button. Press it and the owner sees a small numbered mark on your face in the people row under the project title, and a count in the bar: "2 hands up". The number is your place in the queue, so a teacher with four hands up can tell who asked first. Press Hand down to take your own back, or press the mark on your own face.

The owner takes one hand down by pressing the mark on that person's face, and all of them with Lower all in the bar. A hand also goes down when the person holding it leaves the room, so the queue is always people who are actually there. Both tools end with the room: ending it clears the countdown and every hand.

Next