Metadata-Version: 2.4
Name: intrepid-studio
Version: 0.1.0
Summary: The Intrepid editors in your browser, on a folder of yours: requirements, circuits, simulation, verification, MC/DC tests
Author: Roberto Bruttomesso
Author-email: roberto.bruttomesso@gmail.com
Maintainer: Roberto Bruttomesso
Maintainer-email: roberto.bruttomesso@gmail.com
License-Expression: PolyForm-Noncommercial-1.0.0 AND Apache-2.0 AND CC-BY-4.0 AND MIT
Project-URL: Homepage, https://intrepid-studio.eu
Project-URL: intrepyd, https://pypi.org/project/intrepyd/
Keywords: formal verification,model checking,requirements,MC/DC,circuits,simulink,lustre,plc
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Testing
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE.md
License-File: THIRD_PARTY_NOTICES.txt
Requires-Dist: intrepyd>=0.25
Dynamic: license-file

# Intrepid Studio

The Intrepid editors in your browser, on a folder of yours: write the
requirements of a design, draw the circuit that implements it, simulate it,
**prove** its properties or get the steps that break them, and generate the
**MC/DC tests** that show each condition of a decision counts. The model
checker [intrepyd](https://pypi.org/project/intrepyd/) works underneath, out
of sight.

```
pip install intrepid-studio
intrepid-studio ./my-project
```

The command serves the editors on the folder, made if missing, and opens the
browser on them. Leave it running while you work; Ctrl+C stops it.

- **Requirements**: a table of requirements, each with its text for
  reviewers and a formula for its logic, from which its circuit is built.
- **Circuits**: a canvas in the style of Simulink, with logic, comparisons,
  arithmetic, delays, timers, counters and subsystems, checked as you draw.
- **Simulation**: the inputs step by step, the outputs on the canvas, the
  signals in a scope.
- **Verification**: assertions proved at every step, or broken by a trace;
  targets reached, or proved unreachable; proof certificates any SMT solver
  checks.
- **MC/DC tests**, and a **report** to print, a page per requirement.
- **Lustre** models and intrepyd programs opened as circuits; circuits
  exported as Python programs.

The project is the folder: its files are JSON, made for version control, and
the same as those of the Intrepid Circuit Editor for VS Code.

## Options

```
intrepid-studio [FOLDER] [--port N] [--no-browser] [--python PYTHON] [--license FILE]
```

- `--port N`: the port on 127.0.0.1 (default: a free one);
- `--no-browser`: print the address, do not open a browser;
- `--python PYTHON`: the Python with intrepyd the runs use (default: this one);
- `--license FILE`: the license file intrepid's engines run under.

## On your machine only

The studio listens on 127.0.0.1, with a random token in the address it opens,
asked of every call; no path leaves the folder. Nothing is sent anywhere.

## License

intrepid-studio is free for noncommercial purposes, such as personal use and
use by educational institutions and public research organizations, under the
PolyForm Noncommercial License 1.0.0; any other use, in particular by
companies, requires a commercial license: write to license@intrepid-studio.eu.
The same holds for the engines of intrepyd, which verify and generate the
tests: intrepyd's wheels carry a noncommercial license, and the studio's
status bar shows the license in use, and helps to ask for another.

Requires Python 3.11 or newer, on a platform where intrepyd has its wheels:
Linux (x86-64) and Windows (x86-64); macOS 13.3 or newer on Apple
silicon as soon as intrepyd's wheels support it.
