MetaLoom // Cortex

The engine that
watches everything.

Cortex is the processing engine. It runs as a worker daemon, registers with Loom, and executes the nodes that turn a file into facts — speech into text, faces into vectors, scenes into captions, documents into searchable content.

Apache 2.0 · 45 node kinds shipped · every one of them open source

License
Apache 2.0
Node kinds
45, plus your own
Acceleration
CPU or GPU, per worker
Scaling
Add workers, pin kinds

What it is

A worker fleet,
not a batch script.

Cortex is long-running. On startup it opens a connection to Loom, announces the node kinds it can run and what their ports look like, and then waits. Loom pushes work down that connection — Cortex never polls, and it never holds the pipeline graph.

  • One node at a time A worker sees a single task — this node, this item — and answers with a result. That is what makes a fleet of unequal machines work.
  • Kinds are advertised, not assumed A GPU box can offer only facedetect and whisper. Loom routes each task to a worker that has said it can run it.
  • Typed ports, checked before the run Nodes bind to each other by port and content type, so a graph that cannot work is rejected in the editor rather than at three in the morning.
  • The results are auditable Every node result is recorded against the asset with the node that produced it — including the ones that produced nothing, and why.

Open source · Apache 2.0 · runs on your hardware

Loom Asset server API · storage · search · UI
Cortex Processing engine 45 node kinds · GPU-friendly You are here — this page
Graph Graph database Native code · openCypher

Ways to run it

Run one worker on a laptop or twenty on a rack. The graph stays on Loom either way.

What it does

Forty-five kinds of looking closely.

Each node does one thing, declares what it needs and what it emits, and can be swapped for another that emits the same.

Speech and language

Transcription with whisper.cpp, translation, summarisation and classification against an OpenAI-compatible model, sentiment, and text-to-speech.

The whisper node

Vision

Face detection and description, object detection, OCR, captioning, scene detection and layout, depth maps, quality and dominant colour.

The facedetect node

Identity and duplicates

MD5, SHA-256, SHA-512 and chunk hashes, perceptual video fingerprints, and the dedup nodes that use them to find the same footage twice.

Deduplication

Sources and sinks

Pull from a filesystem, S3, Google Drive or OneDrive; write back to S3; move, tag, rate and assign what came out.

Source nodes

Flow control

Filters, guards and gates that decide what continues through the graph — including ones that route on a human's rating or tag rather than on a score.

Filter nodes

Nodes of your own

Script a node in JavaScript inside the editor, or build one in Java or Python when it needs to be a real component of the fleet.

Write a node

Running it

Built to be operated.

A processing fleet is only as good as what it tells you while it is running.

Registration
A worker connects to Loom, registers its kinds and appears in the UI. There is nothing to configure on the server for a new worker.
Affinity and routing
Pin heavy kinds to the machines that can run them, and keep a segment of a graph on one worker when the intermediate data should not travel.
Metrics and monitoring
A Prometheus endpoint per worker with a documented catalogue, plus the tasks view in the UI for what is running right now.
Containers and Helm
Published images and a chart that deploys a fleet alongside Loom, including GPU node selectors.
Sidecars where they help
A few nodes call a small local service for a model that only exists in Python. It is started next to the worker, not somewhere else.
Debug mode
Arm a breakpoint, hold a run at a node and look at exactly what it produced, with the result strip the docs' screenshots come from.

Cortex

Point it at a folder.

The fastest way to understand the engine is to run one pipeline over a directory you already have and look at what comes back attached to the files.

MetaLoom ships no model weights. Every model is a configuration value, and what each node loads by default — with its license — is written down.