Project

🔗

GitHub Repository

Source code, issues, pull requests, and tags (the repository publishes no GitHub Release objects). The primary home of CNA development. Note that the default branch shows the alpha.1 tag; the development snapshot documented on this site is on the apple/m4-stabilization branch.

github.com/libcna/cna ↗ apple/m4-stabilization branch ↗
📥

Report an Issue

Found a bug or want to request a feature? Open an issue on GitHub. Please search existing issues before opening a new one, and say whether you are on the alpha.1 tag or on the apple/m4-stabilization branch, which renderer, platform and audio implementation you selected, and which CNA commit you built.

Open Issues ↗
📄

Contribute

CNA is open source under Ms-PL. Pull requests are welcome. See the repository README for contribution guidelines and the TODO list for high-value contributions; the site's own contribution guide and roadmap list the gaps that are currently open, including renderer-specific work on the current 14 renderer identities.

Pull Requests ↗
💬

GitHub Discussions

Questions, ideas, and general conversation about CNA. CNA is an open-source project — GitHub is the best way to reach out to the team and community.

Discussions ↗
🐞

cna-demo

CNA's own demo programs (such as cna_demo_2d and cna_house3d_demo) are built from the example trees inside the CNA repository itself, and no standalone cna-demo repository is linked from this site. Runnable browser builds are on the demos page; the in-app catalog of live demonstrations is the cna-examples project and the XNA sample ports are in cna-samples.

cna-examples ↗ cna-samples ↗

Video & Demos

▶

YouTube Channel

Development updates, demos, and architecture walkthroughs. Subscribe to follow CNA's progress; recent uploads show current demos such as the car simulator, the living-room simulator and CNA Street.

youtube.com/@libcna ↗
🌐

Web Builds

CNA demos compiled to WebAssembly and runnable in the browser. The demos gallery lists 14 builds (as of 22 September 2026), including the House 3D Demo and CNA Demo, and the samples gallery publishes 90 XNA sample ports (as of 3 October 2026). They are prebuilt bundles: evidence for the CNA revision each was built with, not for this snapshot.

View Web Demos samples.libcna.com ↗
📱

Android Builds

No CNA Android APK is currently published. Android is a build path (SDL3 and the NDK) with a demo Gradle project in the CNA repository, but no CI lane validates it in this snapshot. The Speedy Blupi port has its own Android Gradle/NDK project in the mobile-eggbert repository; it builds from source and no APK is released.

mobile-eggbert ↗

Author & Contact

👤

Robert Vokac

CNA is developed by Robert Vokac. Contact via GitHub for project-related matters.

github.com/libcna ↗
💌

Author Contact

For project enquiries, collaboration, or feedback not suitable for a public GitHub issue, use the CNA Discord server (also linked in the site navigation). No direct contact e-mail address is published on this site.

Discord ↗

Related Open-Source Projects

🎮

FNA

Managed C# XNA 4.0 reimplementation. CNA shares the Ms-PL licence and draws on FNA as a reference.

fna-xna.github.io ↗
🎮

MonoGame

Cross-platform C# successor to XNA. Useful API reference for XNA 4.0 compatibility.

monogame.net ↗
🔗

SDL3

CNA's cross-platform foundation for windowing, input and audio: every CNA window, on Windows, X11, Wayland, macOS, iOS, Android and the web, is an SDL3 window. The Headless and Terminal hosts and an ALSA audio backend cover windowless SDL-free builds.

libsdl.org ↗
🔸

FNA3D

The FNA project's graphics-device library, which chooses SDL_GPU, Direct3D 11 or OpenGL at run time; CNA's FNA3D renderer adapts it and uses its MojoShader for compiled XNA effects.

FNA3D on GitHub ↗
🧰

sharp-runtime

The C++23 implementation of the practical System::* surface that every CNA build requires. Use its apple/m4-stabilization branch with CNA's apple/m4-stabilization branch.

sharp-runtime ↗
🎨

easy-gl & meta-gl

The OpenGL/GLES wrapper libraries behind CNA's three EasyGL renderer identities (OPENGLES3, OPENGL33, WEBGL2).

easy-gl ↗ meta-gl ↗