Usage — Classes and demos

In this deployment, ClimCanvas runs on a single PC (PC-A below) and several participants connect from the browsers on their own PCs. It suits university classes, workshops, and demos at conferences. See local use for single-user use, and remote use for everyday use by several people on a lab server.

CLASS

Class room / demo mode

Everyone connects to one machine via browser. Screens are independent per connection; source data is shared.

1. Launching the app (connection flow)

Launch on PC-A with the port exposed to the network, and just tell the participants the address. An independent session is created for each connection (browser tab), so each participant's screen and panel settings do not mix with the others'.

# ① On PC-A — activate the Python environment and launch with the port exposed to the network ($IDIR = installation directory)
$ conda activate env_name # your usual analysis environment (Install 1.3)
$ cd $IDIR/climcanvas
$ streamlit run app.py --server.address=0.0.0.0 --server.headless=true
 
# ② Participants open http://<IP address of PC-A>:8501 in their own browsers
 
# ③ To stop, press Ctrl+C on PC-A (everyone's connection is closed)

2. Prerequisites and caveats

In this deployment, the operations of all participants are handled inside a single process on PC-A. That is, everyone's operations run with the privileges of the user who launched the app on PC-A, and there is no authentication on connections. Consider it designed for use on a classroom LAN, under supervision, and with teaching data only.

3. When connections fail: client isolation

When participants cannot reach PC-A over Wi-Fi, the most common cause is client isolation (AP isolation). It is a feature that blocks, at the access point, direct communication between devices on the same network. Each device's traffic is limited to the upstream direction (router → Internet), and packets addressed to other devices are dropped. As a safety measure against eavesdropping and attacks from neighboring devices on networks used by the general public, it is often enabled on guest Wi-Fi, in hotels, and on university campus Wi-Fi (including eduroam).

Symptoms and how to tell

Workarounds (in practical order)

  1. Use the wired LAN of the computer lab: the wired network installed in classrooms usually has no isolation and is the most reliable.
  2. Consult the network administrator: ask for an SSID/VLAN without isolation for the class, or for an exception for PC-A. At a university this is the proper route.
  3. Bring your own router/AP: set up a local Wi-Fi network and connect PC-A and all participants to it (no Internet connection is needed — ClimCanvas works entirely within the LAN). Some universities prohibit bringing in APs, so check beforehand.
  4. Smartphone tethering: for a small group, having everyone connect to the instructor's smartphone hotspot also works (hotspots usually allow communication between devices).
  5. Expose temporarily through a tunnel service: open an outbound tunnel from PC-A with ngrok, Cloudflare Tunnel, or similar, and participants connect over the Internet to the public URL issued. Since no direct communication between devices on the LAN is used, isolation has no effect. However, anyone who knows the URL can connect (combine with the service's authentication feature where possible), the data passes through a relay server, and free plans limit the number of connections, so it is a pragmatic option for small groups, short durations, and teaching data only. Check your university's terms of use beforehand as well.
  6. Run on a campus server: instead of PC-A, launch on a server reachable from the campus network (effectively a variant of remote use).

Examples of tunnel services. In both cases, keep ClimCanvas launched privately (127.0.0.1). cloudflared (Quick Tunnel) needs no account and participants just open the URL, but it has no way to add authentication. ngrok requires a free account registration and interposes a warning page on each participant's first access (they click "Visit Site" once), but in return simple authentication can be added with --basic-auth.

# On PC-A — activate the Python environment and first launch ClimCanvas privately
$ conda activate env_name # your usual analysis environment (Install 1.3)
$ streamlit run app.py --server.address=127.0.0.1 --server.headless=true
 
# Example 1: cloudflared — no account needed
$ cloudflared tunnel --url http://localhost:8501
# → tell participants the URL shown (https://xxxx.trycloudflare.com)
 
# Example 2: ngrok — when you want authentication
$ ngrok http 8501 --basic-auth "user:pass"
# → tell participants the public URL shown (https://xxxx.ngrok.app)
 
# Stop with Ctrl+C — closing the tunnel ends the exposure immediately

4. Choosing a deployment

DeploymentWhere the app runsWho connectsSuited for
Local useYour own PCOnly you (the same PC)Everyday personal use
Remote useLab serverEach user, through an SSH tunnel, to their own processEveryday use in a lab (with data separation)
Classes and demos (this page)PC-AAll participants, over the LAN, to the same processClasses, workshops, demos (temporary; teaching data only)

Whereas remote use is a configuration in which each user has a process with their own privileges and authentication is left to SSH, classes and demos share a single process without authentication. "Connecting to the same process" does not mean, however, that all participants look at and operate the same screen — as described in section 1, an independent session is created per connection, so each participant's screen and panel settings are independent of the others. What is shared is not the screen but the executing identity (the privileges of the user who launched the app), the computing resources of PC-A, and the destination of "To this PC" saves. This lack of separation between users is the price of convenience, so choose remote use for everyday operation and the deployment on this page for temporary multi-user sessions.