- Python 72.1%
- JavaScript 20%
- HTML 3.6%
- Shell 2.9%
- Java 1.3%
- Other 0.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| android | ||
| docs | ||
| examples | ||
| helllogic | ||
| packaging | ||
| scripts | ||
| tests | ||
| .gitignore | ||
| PKGBUILD | ||
| pyproject.toml | ||
| README.md | ||
HellLogic
Local FBD logic editor with a read-only ladder view, Karnaugh analysis, simulation, and an offline Android application. Python 3.10+; no Python runtime dependencies.
Run
python3 -m helllogic
# Choose a port or suppress browser launch:
python3 -m helllogic web --port 8765 --no-browser
Install with pip install .. The helllogic command and application-menu launcher open the web editor.
Workspace
FBD is the editable program. LD and Karnaugh are derived views; switching tabs preserves the FBD layout, zoom, selection, history, and simulation. Build an equation once to create both diagrams. Manual logic edits retain the original expression as Source equation · modified; analysis always uses the current circuit.
Use Arrange & route to replace the whole FBD placement and wire routes in one undoable action. Layout and routing never run automatically. Drag blocks and connections to adjust them manually. Settings → Connections selects Lines (default) or Circles; this preference stays in the browser, independently of project files. Inverted inputs and negated outputs use filled dots.
The library follows the LOGO-style instruction order, with alternate functions under Additional. Network instructions are local simulation inputs and outputs; they have no communication settings.
Simulation supports live digital and analog inputs, step/run/reset, virtual time, retention, timers, counters, and message displays. Clock and power-cycle controls are under Advanced. On narrow screens, Library and Properties open drawers.
Karnaugh supports output selection, interactive truth rows and map cells, SOP/POS grouping, CSV, and a two-page print/PDF export. Visual maps support at most four inputs. Stateful, analog, or feedback circuits require simulation.
Save and Open use version-1 JSON projects. Existing single-bend routes remain readable; new arranged routes store waypoint lists. Imported LD projects compile to editable FBD. Invalid imports and equations preserve the open project.
CLI utilities
helllogic check examples/equation.json
helllogic truth examples/equation.json --csv
helllogic equation 'y = !ac + (!a!d + ab)b' --language FBD -o circuit.json
Build and verify
Windows portable and hosting bundles (written to dist/):
python scripts/build-release.py
# Build only one target:
python scripts/build-release.py windows
python scripts/build-release.py server
The Windows x64 ZIP includes the official embedded Python runtime; extract it
and run HellLogic.cmd. The builder downloads the pinned runtime and verifies
its SHA-256. For offline builds, pass --windows-runtime /path/to/python.zip.
The server archive includes the application, Dockerfile, HTTPS reverse proxy, Compose configuration, and a Python launcher. See hosting instructions. Hosting is at the domain root; simulations require one application instance.
Install a native Python server with a systemd user service (no Docker required):
./packaging/server/install-server.sh --port 9000
Use --foreground to run without systemd, --host 0.0.0.0 for network access,
or --no-start to install files only. For direct startup from the checkout:
./packaging/server/start-server.sh --port 9000.
Docker HTTPS hosting is optional: ./packaging/server/install-server.sh --docker --domain logic.example.com.
The same scripts are included at the root of the server release.
python -m unittest discover -s tests
python -m build --wheel --no-isolation
./scripts/build-arch.sh --force
./android/build_apk.sh
Browser checks: node scripts/workspace-browser-qa.cjs and node scripts/workspace-touch-browser-qa.cjs (Playwright and Chromium required). Set HELLLOGIC_URL, PLAYWRIGHT_MODULE, or CHROMIUM_PATH to override defaults. See Android, simulation, parameters, and conversion.
This is a local simulator. It does not read Siemens projects or communicate with PLC hardware. The repository does not declare a distribution license; see package status.