What is APRON?

APRON (Array Processing Environment) is a suite of tools and scripts that can be used to investigate and experiment with array based algorithms and ideas. It is a highly visual environment, where you can inspect array contents in real-time during running simulations. You can even interact with and change parameters during a running simulation – a great way to gain an intuitive understanding of array based algorithms and models!

APRON is largely developed by David R W Barr, (with contributions from others) who is a research associate of Piotr Dudek, working in the Microelectronics Design Laboratory at the University of Manchester, UK.

Click “NEWS” for latest videos, updates and examples!

Please subscribe to the “RSS” feed for site updates!

APRON was designed to provide fast and flexible simulations of:

  • Image Processing
  • Video Processing
  • Biologically Inspired Neural Networks
  • Computer Vision
  • Cellular Non-linear Networks (CNN)
  • Cellular Processor Arrays

…and is fast enough to be used as a core computational component of many real-time and robotic systems.

APRON is not a library of software functions. It is an semi-compiled/interpreted programming language, with highly optimised routines implementing many common and uncommonly used array operations. Algorithms are written in APRON-Script, which is a high-level functional “assembly-like” language, making it ideal for both low-level applications (such as modelling new processor architectures), and high-level (feature recognition in bio-inspired visual systems).

This video shows the typical workflow and algorithm development experience:


If APRON lacks a certain function, it is very easy to extend the core instruction set. In fact, this is encouraged! Creating a plug-in is very simple, requiring the implementation of just 1 function. The process of extending APRON is documented with screen-shots!

To date, APRON has been integrated/extended to use:

  • USB Webcams
  • FireWire cameras
  • Neuromorphic Systems
    • Silicon Retina
    • Silicon Cochlea
  • Robot arms
  • Servos
  • Pan and Tilt
  • Custom Vision Sensors
    • SCAMP3 & SCAMP4
    • ASPA2 & ASPA3
  • Beowulf Clusters
  • MatLAB
  • UDP/TCP Networking
  • iCub
  • Yarp
  • CUDA

Leave a Reply