Ecto - A C++/Python Computation Graph FrameworkΒΆ

Initially aimed at computer vision and perception research tasks, Ecto is a hybrid C++/Python framework for organizing computations as directed acyclic graphs of computing ‘cells’ connected by typed edges. These graphs are typically constructed via Python script and executed in a single process (and possibly multiple threads) by external schedulers. The computing nodes are written in C++ against a simple interface that naturally creates libraries of self-documenting, scriptable components and smooths the path from prototyping to testing to deployment.

Ecto itself is small, has minimal dependencies (C++, Boost, Python) and works with or without OpenCV, PCL, and ROS in any combination. We believe that Ecto allows vision and perception researchers to express their computational models in a natural fashion, obviating e.g. ROS time synchronizers and ROS nodelets in most cases.

As of 2012, Ecto is officially released. It is being used by researchers at Willow Garage and in industry for prototype applications of object capture and modelling, object recognition, pose estimation and refinement, visual slam, projector-based augmented reality and chess playing.

To understand ecto, you probably want to go over the Ecto docs first:

Ecto modules

Ecto has several modules that wrap different libraries or functionalities:

Bug reports

Please use the github infrastructure fot the desired module on

Email List

Also feel free to join the email list: