Emergent Design Emergent Design Atom Github

Our framework for machine vision solutions, Cog allows rapid development and deployment of custom vision systems with minimal overheads and without compromising on performance. A detailed description of the cog architecture can be found on our blog.

Cog can capture from various types of camera (including visible, near-IR, thermal, and 3D) and runs an arbitrary number of parallel image processing subsystems. It also presents a REST and websocket interface, controls hardware I/O and can store data for audit, further development or training.

With health monitoring to provide constant feedback on the status of each subsystem and running as a collection of independent services which communicate through Redis, Cog is designed to meet high availability requirements.


Gauge is an instrumentation interface framework capable of handling serial, network and USB instruments and supports a variety of communications protocols. Modbus is the most frequently used generic protocol, though instrument specific schemes can easily be added.

Gauge can operate as a distributed system, with nodes placed close to instrument clusters connected to a primary server which exposes REST and websocket APIs and a user interface designed to run in any modern browser. Logging services can also be enabled to store and retrieve historic data.

open source

Over the years we have developed a number of open-source libraries and applications including…

libemergent contains a variety of classes that we use throughout our products. These include helpers for dealing with images, logging, Redis and dynamic type construction.

libpsinc is a camera driver for the PSI range of machine vision hardware.

libentity provides a header-only C++11 library for object serialisation that includes codecs for JSON and BSON. It is used extensively in the cog framework and has proven to be fast, stable and simple to use.