Skip to content
Construction drawings with red markup pinned edge to edge on a coordination-room wall at dusk, a desk lamp and a laptop below

Open at the core

Every record that crosses a handoff between firms has a published, versioned shape at schemas.ectropy.ai -- not a private format you have to reverse-engineer to get your own data out.

A voxel, a decision, a resource status: each one is a real, documented schema, not an internal implementation detail. If you want to integrate against the platform, read the contract -- you don't need a partnership agreement to see the shape of your own data.

What's in the core

The open surface is deliberately narrow and Apache 2.0 -- the same playbook dbt and Supabase run (dbt Core's engine, Supabase's self-hostable server). It holds what a record is: its shape, keys and vocabularies, and the building blocks that read and write it. Commercial value lives in the work done on the record, not in the record itself.

The boundary

The core never forks for a demo -- every surface conforms to the same published schema whether you're running the open building blocks or the commercial platform. Checking, comparing, predicting and proving records, multi-tenant operations and the hosted service are what Ectropy sells; the record shapes and the core building blocks are what the industry gets to own outright.

For developers

ectropy-ai/core holds TypeScript building blocks: IFC parsing, model federation, clash detection, row-level tenant security, an AI provider abstraction, an MCP client and the SDK. The records they read and write are the open standard at schemas.ectropy.ai, so integration happens over the documented record, not a code dependency on Ectropy itself.

  • GitHub -- ectropy-ai/core
  • Schemas -- schemas.ectropy.ai