Open-source common operating picture · Apache-2.0 core
Open source, Apache-2.0

Your data says what you own.
Open sources say what is happening to it.

Philotas is an open-source common operating picture. The core is Apache-2.0: clone it, run it on your laptop, point it at your data, build the picture you need. Enterprises that deploy Philotas into production buy a support license: deployment hardening, accredited environments, licensed data feeds, SLA-backed support.

12live source types in the reference build
5transport modes, realtime positions
24 mmedian position projection error, measured
133tests covering the analytical layer
Open core

The core is open source, Apache-2.0

Clone the repository, run it on your laptop, point it at your data. Everything that makes the operating picture work ships in the core under the Apache-2.0 licence.

The application

The map, the layers, entity resolution, search, alerting rules, and the operator interface.

Ingest

The pollers that pull open and subscribed sources into the picture, region by region.

Detection service

Deterministic anomaly detection over position series, with AutoGluon as the default engine.

Ontology engine

The resolver that links entities across sources, with confidence and evidence on every edge.

Connector framework

One file per source, against an API or a lake query, returning GeoJSON.

RBAC

Roles from viewer to administrator, enforced server-side per route.

Workspaces

Case-scoped access to the semantic corpus, applied in the query itself.

Replay

Recorded snapshots you can scrub back through to reconstruct how a situation developed.

Get the code at github.com/algolotl/philotas, then follow the quickstart to run it.

Capability

What an operator actually does with it

Three things, in the order people reach for them.

See

One live picture

Vessels, ferries, trains, buses, light rail, metro, aircraft, satellites overhead, fire and emergency incidents, seismic activity, weather observations and news, drawn on a 3D globe with a 2D fallback. Layers group by domain. Each one reports its own freshness, and a layer serving anything other than live upstream data is marked as such rather than shown as healthy.

Connect

An ontology that resolves

Sources arrive as separate feeds and leave as one model. A vessel resolves to the berth it is alongside. A ground station resolves to the spacecraft it is downlinking from, and that spacecraft to the satellite another source is tracking. A headline resolves to the specific ship it names. Every edge carries its confidence, its method and the evidence that produced it.

Act

Rules, actions, replay

Alerting rules over any layer and field, with rings drawn on the map. Operator write-back to flag, task, dispatch or watch an entity, recorded to an audit trail and optionally posted to an external system. Recorded snapshots you can scrub back through to reconstruct how a situation developed. Written to the workflows you operate by, so an operator acts inside the picture rather than around it.

AI and ML

The model explains. It does not decide.

Operators get one live picture, a faster response when something happens, and an entity under watch with the trail to reconstruct how the situation developed. The model assists each step. It returns a verdict, a confidence and a reason; the operator decides.

Anomaly detection is deterministic arithmetic over a position series. A language model never decides whether a vessel stopped transmitting, because a claim like that has to survive being questioned, and "the AI flagged it" does not.

Deterministic

Detection

Transmission gaps, loitering and sustained course deviation, each computed from the vessel's own observed behaviour rather than a global threshold. A ferry reports every few seconds and an anchored bulk carrier every few minutes, so one fixed number would either alarm constantly or miss everything. Every event carries its arithmetic: stopped for 47min against a 90s observed median over 62 reports.

Adjudicated

Where the model earns its place

Judgement, where arithmetic runs out. Whether a headline refers to this specific vessel or merely to shipping in general. Whether two sources spelling a name differently describe the same hull. The model returns a verdict, a calibrated confidence and a reason, all of which are stored and shown. The verdict informs the operator's decision; it does not make it.

Auditable

Visible method

Each resolved link records whether a model produced it or the deterministic fallback did, and the interface shows which. When the model is unreachable the ontology still resolves, by heuristic, and says so. Correlations are labelled as correlations, in those words.

Governed

Model output is checked before you see it

Open sources are untrusted text, and a document can carry instructions aimed at the model reading it. Every generated summary and hypothesis passes a governance step first: deterministic rules reject fabricated citations, unhedged causal claims and attributions of fault, then a separate isolated pass reviews what survived. The reviewing pass never receives the source text, which is what stops an instruction buried in an article reaching it. On a hypothesis the check fails closed — if it cannot be verified it is not shown.

Measured

Projection, with an error figure

Contacts are projected forward between reports by dead reckoning, so the picture moves while the source is silent. Measured against 261 segments of real Sydney Ferries movement: median error 24 m, 90th percentile 54 m, over gaps of about 15 seconds. A Sydney ferry is roughly 70 m long. Projected positions are marked as projections.

On sovereignty

The adjudicating model runs against an OpenAI-compatible endpoint, which can be a model you host on your own network. Nothing about the ontology requires a commercial API, and the deployment described below runs the model on the same infrastructure as the application.

Support

Run it yourself, or buy a support license

The core is free and complete. A support license covers what it takes to run Philotas in production. Talk to us about a licensed deployment.

Community
Free
  • The Apache-2.0 core, in full.
  • GitHub Discussions, best-effort.
  • Issues and pull requests in the public repository.
Standard
Support license
  • A named-organisation annual support license.
  • SLA-backed support.
  • Upgrade assurance across releases.
Enterprise
Support license
  • Air-gapped packaging.
  • Accreditation support.
  • Licensed-feed enablement.
  • Implementation.

See pricing for the tier inclusions and typical response times. For a licensed deployment, talk to us.

Community

Built in the open

The repository, the issue tracker, and the roadmap are public. Contributions are welcome.

Repository

The code, tests, and issue tracker live at github.com/algolotl/philotas.

Discussions

Questions and support in GitHub Discussions.

Contributing

Connector authoring, tests, and the DCO: see how to contribute.

Roadmap

Planned work is tracked in the repository: see the roadmap.

Trial

Open the picture

The trial shows the pattern working: a live operating picture on Sydney Harbour, one example of the approach. A deployment puts the same picture on your data, in your region, with your workflows.

The trial is read-only: you can move around it, select an entity, follow its resolved connections, search the corpus and scrub back through recorded snapshots. Operator write-back, rule changes and administration are disabled.

Or open it somewhere specific. Eighty-three regions run from the one deployment and these are a selection. A region nobody has looked at recently starts polling when you open it, so give it a few seconds to fill.

Sydney is where the pattern runs at its fullest: ships, ferries, aircraft, satellites, fires, weather, news and the transport network, all feeding the one picture. Open it first to see the feeds interact.