ScenarioLoom
A workspace under your control

Local processing.
Room to work privately.

Your browser builds the records and scores the alerts. Keep using the web app, or take a complete copy into your own environment. Your schemas and alert files stay out of a remote generation service.

The work happens here
Your browser / your computer

Schema + settings → generated records
Alert file + answer key → score report

On-device processingNo accountOffline capable
A small, inspectable architecture

App files in.
Local results out.

The hosted site delivers HTML, CSS and JavaScript. Generation and scoring run on your device; the app does not call an external service with your inputs.

01 / Load the tool

Open the web app, or open an extracted local copy. Fonts, scripts and visual assets are included.

02 / Process on your device

Choose settings, generate records and read your selected alert file locally.

03 / Choose what leaves

Download a dataset, setup or report. Share only the files and links you intend to disclose.

LOCAL EXECUTION

No generation API.

The app ships with its engines. It has no runtime AI service, cloud scoring endpoint or live sanctions-list download.

CONTROLLED SHARING

You choose the export.

Imported alerts and reports stay in memory. Setup files and share links include the active setup, so review them before sharing.

INSPECTABLE RELEASE

Files you can inspect.

The local bundle includes JavaScript source and an integrity manifest. Its optional server checks file hashes and binds to loopback.

Take a copy with you

A complete local workspace.
No account or install step.

Download and extract the bundle. Opening the app itself needs a modern browser. Node.js is optional for the local server and CLI.

Download the standalone bundle

Includes all five modes, these guides, the CLI, an integrity-checked local server and the retained 0.1.0 release for older setups. It contains the application files, not your current schema, settings or alerts.

Download local ZIP
01

Extract the files, then open index.html.

Keep the extracted folder together and open index.html in your browser. No network connection, package installation or account is needed. Downloaded datasets and setup files work locally too.

Direct file use falls back to cooperative generation when browser workers are unavailable. Copy/share features can depend on browser permissions; downloading is the reliable alternative.

02

Prefer a local server? Start the included launcher.

With a current LTS release of Node.js, open a terminal in the extracted folder and run the command below. The launcher verifies the included file hashes, applies the supplied security headers and serves only the packaged public files. Use a supported LTS release and keep it updated.

Terminal · extracted folder
node start-local.js

Open http://127.0.0.1:8766/. The bundled server binds to 127.0.0.1, so it is intended for this computer. If that port is busy, choose another with node start-local.js --port 8770. Stop it with Ctrl+C. Do not expose it through a public tunnel or use it as a production server.

03

Generate fixtures from the command line.

The CLI uses the same engines without a browser or network service. Use Download setup in the workspace, place the file beside the CLI, and replay it with a new output filename.

Terminal · versioned setup replay
node cli.js generate --setup scenarioloom-setup.json --out test-data.json
node cli.js --help

For scenario packs, add --input-only to exclude the answer-key tables. Keep the labels separately for evaluation. Existing output paths are refused; choose a new file for each run.

Understand the boundaries

Where information lives.

Local processing gives you control over the workflow. It does not replace the security of your browser, computer or test environment.

InformationLocationYour control
Schema, generated rows, selected alert file and reportLocal processing in browser memory

No app upload. Close/reload to discard the in-memory run; settings may persist separately.

Saved setup, including schema and inactive-mode settingsYour browser’s local storage

Clear site data to remove it. Browser profiles and site addresses have separate storage.

Share URL or downloaded setupWherever you save or share it

Active setup included; encoded links are not encrypted. Review before disclosure.

Datasets, labels and exported reportsYour chosen downloads/files

Apply your organization’s handling, access and retention controls.

Requests for the hosted app’s filesHosting/network infrastructure

Host logs can include normal request metadata. Use the local bundle when offline operation is needed.

Read the full privacy statement

Choose a comfortable size

Small first.
Scale with a budget.

Rows stay in memory while you work. The workspace checks an estimate before starting, including nested fields, transaction activity and the supporting records behind each case.

01 / Start comfortably

A smaller device?

Choose Compact in the workspace. Start with about 1,000 shop rows per table, 100 AML customers over 30 days, 500 screening payments, 10 ownership copies or 20 trade copies. These are starting points; your schema and device matter.

02 / Know the boundaries

Two practical budgets.

Standard allows up to 200,000 estimated rows and a 256 MiB working estimate. Compact allows 50,000 and 96 MiB. These planning estimates are not measurements of free RAM or guarantees against memory pressure. Physical phone testing is still pending.

03 / Keep exports manageable

Save directly, or use the CLI.

Browsers that support direct file saving write chunks to your chosen file. Other downloads and clipboard copies use a buffer, limited to 32 MiB in Standard or 16 MiB in Compact across an export. Export a smaller table or use the offline CLI for larger jobs.

A 40,000-row shop dataset completed locally, while a 10,000-row wide-text dataset needed much more memory. Width matters as much as row count. Large jobs can still pause during sorting, garbage collection or worker transfer. The CLI streams exports, but generation still needs memory for the full dataset.

Practical questions

A few things worth knowing.

Can I use the downloaded app without internet access?

Yes. After extraction, the app’s scripts, styles, logo, guides and generation engines are included. It does not fetch remote fonts, models or reference lists. External links, such as the Node.js download page, still require internet access.

What do the integrity checks protect?

The optional server compares files with SHA-256 hashes in the included manifest before starting. This detects changes relative to that manifest. It does not authenticate the publisher if someone has replaced both the files and manifest; obtain your copy from a source you trust.

What does the deployment policy do?

The packaged server applies headers that restrict scripts and workers to the same origin, block app connection requests, prevent framing and disable objects and form submissions. A hosted deployment needs to apply the supplied _headers rules or equivalent settings. Direct file use does not apply HTTP response headers.

Does “synthetic” mean the identifiers can never belong to someone?

No. Random identifiers, phone numbers or contact details can coincide with real ones. Keep data in an isolated test environment, keep safe email domains enabled, and prevent test payments or messages from reaching production systems or real people.

Is this a compliance certificate or a payment-clearance tool?

No. The answer keys describe the supplied fictional cases and dated test-profile assumptions. They do not authorize real transactions. Get practitioner review for compliance evaluation, and verify bank-specific rules before using message exports in an integration.

Why are settings different between the web app and a local copy?

Browser storage is separated by origin: scheme, host and port. A copy at a different address has separate settings. Download a versioned setup to replay through the CLI. Share links reopen the setup at the app address where they were created. Keep seed, anchor date and engine versions with your test results.

Your environment. Your test.

Keep the setup, source records and expected results together.

Back to the workspace