PlainLogic
← Back to the lab

Interactive lab · Automation

Automation Lab

Build tiny deterministic workflows right in your browser: snap together a trigger, some logic, and an action — then press Run and watch the data move through each block. No code, no AI, no sign-up.

The compact Mini Lab v0.1 lives on the homepage — this is the full builder. Same idea, bigger bench: live weather, alerts, earthquake, and water feeds, a wider block library, configurable blocks, and step-by-step execution with a run log. Open the Mini Lab →

The builder

Trigger → logic → action

Click blocks in the palette to add them to the chain, click a block in the chain to configure it, then press Run and watch each block light up as the data passes through. The same blocks with the same inputs always produce the same outputs — the only thing that can differ between runs is the live data itself.

No location

Live blocks need a location. Coordinates stay in this page's memory only — nothing is stored unless you tick the box.

Templates

Blocks

Chain

Deterministic: the same blocks and inputs always produce the same outputs. Live data is the only thing that can differ between runs. If a feed is down or a block needs something it doesn't have, the run stops honestly at that block instead of guessing.

Block settings

Select a block in the chain to configure it.

Data in transit

{}

The shared context every block reads from and writes to, updated after each step.

Run log

  1. readyBuild a chain and press Run. Each step's input and output lands here with a timestamp.

Results

DISPLAY blocks render their result cards here.

Plain-language automation

Three kinds of blocks

Every workflow is the same shape: something happens, a decision gets made, something gets done. The Automation Lab just makes each part a block you can see.

  1. Triggers start the chain.

    A trigger produces the first data. Live Weather, NWS Alerts, Earthquakes, and Water Level fetch real feeds through the same live-data proxy the Situation Room uses. Timer captures the current moment, Form Input asks the visitor a question, and Sample JSON / Sample CSV let you experiment with data you type yourself.

  2. Logic decides and reshapes.

    IF is a gate: if the condition is false, the chain stops honestly right there and later blocks never run. COMPARE, CONTAINS, FILTER, MATH, and TRANSFORM read the data, do their one job, and write the result back into the shared context for the next block to use.

  3. Actions do something.

    DISPLAY renders a result card with your message template. DOWNLOAD saves the result as a file. SAVE keeps it in your browser's local storage. NAVIGATE opens a PlainLogic page — or a source link that came from the live data itself, like the USGS page for a quake.

Why deterministic matters

Same inputs, same outputs — always

There is no randomness and no model call anywhere in a run. Each block is a small, fixed rule, and the runner executes them top to bottom, one at a time. That means a chain you build today behaves identically tomorrow — the only variable is the live data it reads. When a feed is down, the block says so instead of inventing numbers, because a workflow you can't trust is worse than no workflow at all.

Behind the build — what powers this experiment
Block architecture
Every block is a plain JavaScript object: a type, a configuration, and a run(context) function. Triggers produce the first data, logic blocks read and annotate a shared context object, and actions consume it. Because blocks are just data, a chain can be described, rebuilt, and re-run exactly the same way every time.
Deterministic execution
The runner walks the chain top to bottom, awaiting each block before starting the next. Block functions are pure with respect to their inputs: the same configuration and the same inputs always produce the same outputs. Execution is animated node by node, and a timestamped log records each step. With reduced-motion preferences, the same steps run instantly with no animation.
Live-data adapters, shared with the Situation Room
The four live triggers call the same /api/live endpoint the Situation Room uses (GET /api/live?source=…&lat=…&lon=…), so feeds, error shapes, and empty states are consistent across the lab. A null data field means the source failed — the block reports it and stops the run instead of guessing.
Local-only storage
Coordinates live in the page's memory while it is open, and are only written to your browser's localStorage if you tick the save box. The SAVE block writes results to localStorage under a key you choose. No accounts, no servers, no tracking — your chains never leave the tab.
No AI, no keys
There is no language-model call in this page and no API key anywhere in the frontend. The server-side proxy keeps provider keys out of the browser entirely. What you see is everything there is: small, inspectable, deterministic rules.

Questions

Fair questions

Do I need to know how to code?

No. You build by clicking blocks: a trigger like Live Weather, a logic step like "rain chance greater than 60", and an action like Display. Settings are plain-language fields and dropdowns. The only syntax to learn is {{placeholders}} for message templates — for example, {{rain_max}} drops the max rain chance into your message — and the builder shows you which fields are available.

Does it use AI?

No. There is no language model and no AI API anywhere in this lab. Every block is a small deterministic rule: the same blocks with the same inputs always produce the same outputs. The only thing that changes between runs is the live data itself.

What happens if a live feed is down?

The block that needs the feed reports "feed unavailable" and the run stops honestly at that block. Nothing downstream runs on made-up data, and nothing else on the page breaks. Feeds arrive through the same /api/live proxy the Situation Room uses.

Is my location stored?

No. Your coordinates live in the page's memory while it is open. They are only saved to your own browser's localStorage if you tick the "Remember in this browser" box, and they are sent only to the live-data proxy to fetch the feeds you asked for.

Is it free?

Yes. Like everything in the PlainLogic lab, the Automation Lab is free to use as often as you like. No account, no sign-up, no paid tier. Your chains are not saved anywhere; the SAVE block stores results in your own browser only.

Keep exploring

More from the lab

Live data

Situation Room

The live feeds this lab's triggers read from — weather, alerts, earthquakes, radar, and more — in a full operations console.

New · interactive lab

Data Pipeline Lab

The next bench over: take raw feeds, clean and reshape them, and watch each stage of a pipeline transform the data.

The lab

PlainLogic home

Games, experiments, the compact Mini Lab v0.1, PDF tools, and the blog — the full bench.