Entropia Riko
中文 | English
Entropia Riko is a professional node-graph deep-learning editor — ComfyUI-style visual workflows for PyTorch (and optional TensorFlow/Keras), with a modular Blender-like workspace, live training curves, code export, a plugin system, and a built-in file manager.
It runs as a web app (browser) and ships an Electron shell so you can use it as a standalone desktop app — you choose.
Install (PyPI)
pip install entropia-riko # core + API server + PyTorch
pip install "entropia-riko[tf]" # + TensorFlow/Keras nodes
pip install "entropia-riko[hf]" # + Hugging Face (Diffusers/Transformers) nodes
Use it as a Python library:
import entropia_riko
import entropia_riko.nodes # registers all 194 built-in nodes
from entropia_riko.runtime.registry import default_registry
print(entropia_riko.__version__) # "0.1.0"
print(len(default_registry().list())) # 194
Or launch the API server:
entropia-riko # FastAPI on http://127.0.0.1:8000
# equivalent:
python -m uvicorn entropia_riko.server.app:app --port 8000
The pip package ships the Python runtime (nodes, executor, codegen, trainer, subgraphs, API server). The browser/Electron UI is not in the pip package — clone this repo for the full editor.
Features
- 200+ nodes — math, tensor ops, neural layers/activations, attention, normalization, reductions, shape ops, einsum, losses, data loaders, model inference, subgraph references, Hugging Face (Diffusers / Transformers), and TensorFlow/Keras equivalents.
- Node graph canvas (React Flow) — right-click search menu, drag to connect, custom node cards with live output previews.
- Modular Blender-style workspace — split/merge/resize any panel (drag the corner grip; both resulting rounded windows are previewed in blue), switch any window's type, multiple workspace tabs with presets (Layout / Code / Training / MNIST Studio / Text→Image / …).
- Code editor — a Notepad-style window (File/Edit menus + toolbar: New, Open, Save, Undo/Redo, Cut/Copy/Paste) for previewing/editing exported PyTorch code.
- Train + live loss curve — stream per-step loss (SSE) into an SVG chart.
- Train-to-model / load-from-model —
save_model+model_loaderfile nodes (Houdini-style file picker on thepathparameter) persist/restore model weights as safetensors or torch state_dicts. - Clean code export — PyTorch
nn.Moduleand TensorFlowtf.keras.Model. - Multi-file project export — File → Export Code → Export Project… writes a
GitHub-layout PyTorch repo (
README.md,requirements.txt,src/<name>.py) equivalent to the working folder. - Subgraph navigation — double-click a
graph_reference/importnode to enter it; a Houdini-style breadcrumb (root / subgraph) in the top-left shows the level and exits back up. - Multi-modal subgraph I/O —
graph_input/graph_outputaccept adata_kind(tensor / text / json / image_tensor), not just numbers. - Project-as-unit — work with a project folder (see
templates/project/), not a single file;.riko/.ricfiles remain the on-disk format. - Asset Library & New File — a working-directory file manager with drag-and-drop folders, right-click create/rename/delete, "expand full nodes" (inline a file's graph instead of a subgraph reference), and per-file PyTorch code preview.
- Built-in file explorer — Windows-style Import/Export (browse, back/forward, quick access, recent folders; copy files/folders instead of browser downloads).
- Plugin system — load plugins from
.pyfiles, toggle them on/off; managed in both a workspace panel and Preferences. - Handwriting pad — draw a 28×28 digit and send it as a
constantnode to the MNIST example for inference. - Themes — Light / Dark / System / Liquid Glass (Apple-style translucent).
- Detachable floating windows — all dialogs are draggable windows.
- Binary
.ricformat + ASCII.rikoformat with full metadata/settings.
Train → Save → Load → Infer
Models flow through the graph as model values and persist to disk via two
file nodes (Houdini-style — the path parameter has a file picker):
save_model(train-to-model) — serialize a model'sstate_dictto.safetensors(default) or.pt/.pth.model_loader(load-from-model) — load astate_dictback; set themoduleparameter (or feed atemplate) to rebuild the model structure and make it callable again.
/api/train also accepts save_path to persist the fitted model right after
training. Example graphs ship in train + infer pairs (e.g.
examples/models/cnn_train.riko + cnn_infer.riko), each showing the loop:
# 1) train the CNN and write cnn.safetensors
curl -X POST http://127.0.0.1:8000/api/train \
-H "Content-Type: application/json" \
-d '{"doc": <cnn_train.riko>, "steps": 20, "save_path": "cnn.safetensors"}'
# 2) run cnn_infer.riko — it loads cnn.safetensors and runs inference
Quick Start (browser)
cd entropia-riko
python -m venv .venv
. .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
npm install
# Terminal 1 — API (http://localhost:8000)
.venv/bin/python -m uvicorn entropia_riko.server.app:app --reload --port 8000
# Terminal 2 — frontend (http://localhost:5173)
npm run dev
Open http://localhost:5173 (the /api routes proxy to :8000).
Quick Start (desktop app)
The Electron shell spawns the backend and opens a native window on the Vite dev server:
npm install --save-dev electron
npm run dev & # keep the Vite dev server running
npm run desktop
Set RIKO_DEV_URL to point at another frontend URL if needed.
.riko / .ric file format
.riko is human-readable JSON; .ric is the same document zlib-compressed behind
an ERIK magic header. Both carry version, metadata (name, app, appVersion),
nodes, edges, and settings (theme, background image). See
docs/FILE_FORMAT.md.
Plugins
Plugins live in plugins/*/ (a plugin.json manifest + an entry Python module
that registers nodes via @register). Load more from a .py file and toggle them
from the Plugins panel or Preferences → Plugins. Disabled plugins are
skipped so their nodes stay unregistered. Bundled examples: example_plugin,
math_extra, stat_extra.
Development commands
.venv/bin/python -m unittest discover -s tests -t . # Python tests
npm test # frontend tests (vitest)
npm run build # type-check + production build
npm run dev # Vite dev server
npm run desktop # Electron desktop shell
.venv/bin/python scripts/make_brand_assets.py # brand asset helper (see script)
Distribution / Release
Package a clean, shareable source ZIP (commits pending changes, then archives
only tracked files — no node_modules, .venv, dist, caches, or backups):
.venv/bin/python scripts/release.py "release note"
Output: entropia-riko-release.zip in the parent directory (the working
folder is never modified). It contains entropia_riko/, public/, plugins/,
examples/, templates/, electron/, scripts/, tests/, docs/, the
READMEs, and config files — everything a recipient needs to pip install -r requirements.txt + npm install and run.
PyPI release
Build and publish the Python package (entropia-riko on PyPI):
.venv/bin/python -m pip install build twine
.venv/bin/python -m build --outdir dist-pypi
.venv/bin/python -m twine upload dist-pypi/*
Project structure
entropia_riko/
├── ui/ React app (canvas, panels, code editor, file manager, …)
├── core/ Tensor IR + graph document model (.riko/.ric)
├── runtime/ Registry, executor, PyTorch/TF codegen, trainer, subgraph
├── backend/ Torch device detection + conversion
├── nodes/ Node definitions
├── plugins/ Plugin loader
└── server/ FastAPI API server
plugins/ Bundled plugins
examples/ Ready-to-run pre-wired example graphs (dataset → model → loss → output)
electron/ Desktop shell (main + preload)
scripts/ Brand asset generator
public/brand/ logo.svg + hero.jpg (replace in place to rebrand)
Documentation
- User Guide — full manual (UI, nodes, training, export, API).
docs/:APP_SPEC.md,APP_ARCHITECTURE.md,API.md,NODE_SYSTEM.md,DATA_FORMAT.md,FILE_FORMAT.md,UI_STANDARD.md,TORCH_BACKEND.md,CROSS_PLATFORM.md.
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file entropia_riko-0.1.5.tar.gz.
File metadata
- Download URL: entropia_riko-0.1.5.tar.gz
- Upload date:
- Size: 78.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
656bdd5d6bdcdab1cd651c3be98db26e373dd1e5dd86af9fafea2ec1c55aae95
|
|
| MD5 |
b8865a34d03fec7446fbd61cf11eef99
|
|
| BLAKE2b-256 |
a9ac0e004b8ebae8efd337f855cd9ad18bbd668c1e515670f9d0c757ff7bb24a
|
File details
Details for the file entropia_riko-0.1.5-py3-none-any.whl.
File metadata
- Download URL: entropia_riko-0.1.5-py3-none-any.whl
- Upload date:
- Size: 88.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8dd9bf3869c0d349137ddc20d44eaa55e029133ff1f0e5db21a7bacddbe2c0b6
|
|
| MD5 |
bacb12acea8affc5a1c9c757d639b9a1
|
|
| BLAKE2b-256 |
71b35893e66cfaf6312b08960d92329522d892d1b29bc55ad795d2e96da498c6
|