Skip to content
Intrinsic Core is open source and two releases old: what is in the box, why malloc-guard is the tell, and how to quote a client who wants to build on it
Back to Blog

Intrinsic Core is open source and two releases old: what is in the box, why malloc-guard is the tell, and how to quote a client who wants to build on it

Uzair bin Haroon

A control loop that misses its deadline does not throw an exception. It puts the tool in the wrong place, and you find out at two in the morning when the part is scrap and nobody can say why.

That is the problem Intrinsic Core is aimed at, and as of this week you can read the whole thing. Alphabet's robotics company made the repository public on 8 September and cut its first ever tagged release on 21 September at 00:28 UTC. The second came 29 hours later. Apache-2.0, C++, 33 contributors, 167 stars when I looked this morning, and commits still landing — the newest at 02:29 UTC today.

The releases page for intrinsic-ai/intrinsic-core showing tags 20260922.0 and 20260921.0
From intrinsic-ai/intrinsic-core releases on GitHub, read 23 September 2026

What is actually in it

Nine modules. intrinsic_runtime is a local execution engine packaged as a k3s container environment, sitting on ROS 2 and handling process lifecycle and state so you do not wire that up yourself. intrinsic_control — they call it ICON — is the real-time engine: kinematics, trajectory interpolation, and a deterministic loop that the README says can switch controllers "within a single cycle based on live sensor feedback". Then motion planning, perception, on-edge inference, an SDK, the API definitions, hardware drivers and a kinematics library.

Block diagram of the Intrinsic Core architecture from the project README
Intrinsic Core architecture, from the intrinsic-core README by Intrinsic

It runs on Ubuntu 24.04 or 26.04, with 22.04 supported, against ROS 2 Lyrical Luth. Those are pins, not suggestions.

The bit that says somebody means it

Marketing copy about real-time control is cheap. Look at the sibling repositories instead.

One of them is malloc-guard, described in Core's own README as a "real-time C++ library for detecting and preventing dynamic heap allocations in real-time threads". Anyone who has chased a control-loop overrun knows exactly why that library exists. A stray allocation in a hot thread is the classic cause of the jitter that ruins a surface finish once every few thousand cycles and never reproduces on the bench. Somebody on this team has been bitten by it and built a tool.

Next to it sits icon-shared-memory, the shared-memory transport the control stack uses, and icon-hwm-controller, which bridges ros2_control into the real-time path. That is a team solving the boring, load-bearing problems, not a demo.

Then read malloc-guard's own GitHub blurb: "Staging repository for MallocGuard, currently going through go/intrinsic-open-source." An internal link, left on a public repository. The open-sourcing is a process still running, not a finished thing.

What the licence gives you and what it does not

Apache-2.0, with the patent grant that comes with it. Contributions need the Google Contributor Licence Agreement signed and C++20 code. Fine, and normal.

Under the licence sits one sentence: "This is not an officially supported Google product." No support contract, no service level, no escalation path. Pair that with the versioning — 20260921.0 and 20260922.0 are date stamps, not semantic versions, and a date stamp promises nothing about what broke between them.

Thumbnail for a ROS 2 talk given by Intrinsic's ROS 2 technical lead
From ROS 2: From the Iron Age to the Jazzy Age — Chris Lalancette, ROS 2 Technical Lead, Intrinsic by PX4 Autopilot

The company does carry weight in this ecosystem — its ROS 2 technical lead gives the distribution talks — which cuts both ways. Expertise, yes. Also a project whose direction is set by one company's roadmap and whose trademark, "Intrinsic" and "Intrinsic Core", belongs to Intrinsic Innovation LLC.

If a client asks you to build on it

Pin the tag. Name it in the contract, treat every bump as a change order, and budget to read a diff you did not write, because nobody is going to backport a fix for you. Two weeks of public history and two releases is not a stability record; it is a starting line.

Run the same clause discipline we wrote out for agent work on 21 September and 18 September. Who owns the upgrade, who carries the risk, what happens if upstream stops.

My read, and it is mine — no source carries it: the tag scheme is the tell. I expect intrinsic-core to still be publishing date-stamped releases with no semantic version by 31 October, because you do not promise API stability six weeks after going public with thirty-three contributors and an open-sourcing process still in flight. If they ship a 1.0.0 before then, I am wrong, and it means the API is frozen enough to quote a fixed price against. Until that day, quote it time and materials.

Sources