NAP C++ Framework

I’m an active contributor and user of the NAP C++ framework.

NAP is a low overhead, open source, real-time control and visualization platform. It enables you to build native running applications to interact with the world around you.

Battle tested for years, NAP seamlessly connects computers of any shape, form and size to every type of input and output imaginable.

Use NAP to visualize and control immersive audiovisual installations, high precision robotics in manufacturing environments or little things in your home in a way that is secure, private and highly energy efficient.

NAP is completely data driven and heavily influenced by modern game engine design, with one exception: it does not dictate any sort of pipeline. This allows NAP to run on any type of device: from low-power, energy efficient ARM computers such as the Raspberry Pi to industrial PCs and x86 gaming rigs.

NAP applications are lean and mean: only package and ship what you actually use. On top of that NAP is easy to extend: build you own modules, resources, devices and components.

NAP wants you to be safe and validates data for you on initialization. Applications are also responsive: hot-load content changes directly in to the running application. On top of that, NAP is completely cross-platform and supports all modern desktop environments.

NAP Framework ships with many useful modules, including: A Vulkan 3D/2D render engine, a Vulkan compute module, a multi-channel audio system for music playback, recording and analysis, a data sequencer, an editor to author application content, a web portal to control NAP applications in a browser, a system for creating and loading presets, a video player powered by FFmpeg and a Python programming interface.

NAP also has built in support for many common protocols and standards, including: WebSocket, MIDI, OSC, Artnet, Serial, EtherCAT, OpenCV and SQLite.

Download and try NAP here