NAP 0.4.0 Released & Open Source



I’m happy to announce we just released a new version of NAP, which includes a lot of new functionality, features and bug fixes. But most importantly: NAP is now completely open source. This means you can use the NAP source code and NAP distributable package to create both commercial and non-commercial works, as long as the open source license (MPL 2.0) is not violated. In short:

You are allowed to use and modify the NAP source code, for both commercial and non commercial purposes. However: if you make changes to the NAP source code, you have to make those changes available for others to use. We encourage people to share their ideas with the community. Keeping knowledge to yourself is not what NAP Framework is about.

You can find the NAP source code here:

Packages are directly available from our website or the github repository.

It has been my (our dream) to make NAP an open source initiative for a long time. With the release of version 0.4.0 we finally thought the time was right. NAP has matured over the years and became our go-to standard for many projects, both big and small. To mark the occasion we worked on an extensive set of new features, now available as part of the 0.4.0 release:

  • We completely ditched OpenGL in favor of Vulkan
    • Noting a serious boost in graphics performance across all platforms!
    • The graphics engine has been rewritten from the ground up.
  • We introduced a data-driven Sequence Editor
    • Sequence any type of parameter in real-time
  • We added support for OpenCV
    • Including threaded capture of video and cameras
  • Our build system has is now completely data-driven
    • Napkin only loads the modules that are part of your project
  • Add a layer of protection to your project using a flexible License System

And many, many more. For a full list of features take a look at the changelist and release notes.

Unfortunately NAP 0.4.0 is not directly compatible with any of the previous NAP versions. This is due to major changes to the render engine, build system and license policy. If you run into specific porting issues make sure to ask us on the forum.

Use the upgrade tools build_tools\project_and_module_updater to convert a =< NAP 0.3.X project to a NAP 0.4.X project, compatible with the new build system. Use the demos as a point of reference to port an older NAP OpenGL application to Vulkan. It’s also important that you update your GLSL shaders. The shading language has not changed but uniforms need to be part of a uniform struct (UBO), they can’t be declared independent from one.

As mentioned in the improvements, napkin now loads a project.json instead of application data.json file. This is because napkin correctly tries to resolve all module dependencies before loading the data associated with your application.