nunuStudio: a browser based editor for 3D and WebXR scenes written in JavaScript
Web powered cross-platform 3D, WebXR game engine.
At a glance
- What is it?
- A visual game engine that runs in the browser on three.js, exports to NW.js and Cordova, and has shipped version numbers through two very different naming schemes over seven years.
- Who is it for?
- nunuStudio is one of the few engines where you can open a URL, get a working editor, and author a scene without installing a native toolchain, which is still a genuine advantage for quick prototypes and for teaching. The visual editor covers materials, textures, shaders and code, the runtime embeds into a page with a single loadApp call, and WebXR support means a headset is a real target rather than a roadmap item.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Activity is slowing. The repository last received commits 7 months ago.
- What is it written in?
- Mainly JavaScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 11, 2026, and from our analysis. They are not legal advice.
Editorial analysis
An editor you can open in a browser tab
The opening argument for nunuStudio is that the whole editor runs on the web. The README describes it as an open source game engine for the web that lets designers and web developers build 3D experiences for the browser, and the project page hosts a fully featured web version of the editor at `https://www.nunustudio.org/build/editor/index.html`. Tested browsers are named explicitly: Firefox, Chrome and Microsoft Edge, with mobile browsers supported as well. Underneath, the rendering comes from three.js and physics from cannon.js, so the engine is a layer of tooling and file format support on top of libraries most people have already met.
The feature list makes clear what the visual editor covers. It handles drag and drop of images, video and models directly into a project, manages project resources, and includes editors for materials, textures, shaders and code. Format support is broad and named: gltf, dae, obj, fbx and 3ds among others. Deployment is not limited to the browser either, with NW.js exports for desktop and Cordova exports for mobile, and the whole thing is compatible with WebXR for virtual and augmented reality. The scripting layer accepts either JavaScript or Python, which is an unusual pairing for a web engine and one of the more flexible claims in the README.
Building needs Java on the path next to Node
The build instructions are where this project gets old fashioned in a way worth planning around. The README's build section states that you need to install Java, Node.js and NPM and ensure that the `java` command is working properly, then install dependencies. The dependency install has two documented forms, which is itself a small inconsistency:
npm install --legacy-peer-depsStep one says to install dependencies from npm by running `npm install`, with a sub step noting that if running on Node 16 or later you should run `npm install --legacy-peer-deps` instead. That legacy flag is the tell: the dependency tree predates modern peer dependency resolution, and npm will need to be told to stop being strict. Two further setup steps are required before you can build anything, installing dependencies for the project webpage separately and then running the editor, runtime and documentation build:
cd source/page && npm installThe bundle output is produced by Webpack, with separate configs in the tree for `webpack.dev.js`, `webpack.prod.js`, `webpack.runtime.js` and a shared `webpack.config.js`. JavaScript is minified with Uglify rather than a modern minifier, and documentation comes from YuiDocs, which the README notes can be regenerated from the project source by running `npm run docs`. There is also a `dockerfile` and a `.dockerignore` at the root, and one package script serves the built editor out of the `docs/editor` directory on port 8081, so there is a container path for people who would rather not fight the local toolchain.
Embedding a scene in four lines of HTML
The most concrete thing in the README is the embedding story, and it is refreshingly small. An application built with the engine can be dropped into an existing page and is compatible with frameworks like Angular or React, and the bootstrap happens through a `loadApp` method. The minimal case:
<html>
<head>
<script src="nunu.min.js"></script>
</head>
<body onload="Nunu.App.loadApp('pong.nsp', 'canvas')">
<canvas width="800" height="480" id="canvas"></canvas>
</body>
</html>One script tag, one `onload` call naming a `.nsp` project file and a canvas id, and the scene runs. The `.nsp` extension is the project format, and one of the older release notes mentions being able to open `.nsp` files with nunuStudio directly, so the format is a first class citizen rather than an implementation detail. For framework users the README shows a longer Angular style variant where the app is loaded inside a component's lifecycle callback with a file path supplied, and the note at the end confirms that `Nunu` is then addressable as usual inside the app. The practical upshot is that the engine is not trying to own your page, which is the design choice that matters most for embedding.
Release tags say 2019 while the package says 0.98
Here is the versioning story, and it needs both halves. The three release tags available are v0.9.6 from April 2019, v0.9.5-beta from December 2018 and v0.9.4-beta from May 2018. The package manifest, by contrast, declares a version of `0.98.47`, which is a different numbering line entirely rather than a straightforward continuation of 0.9.6. The repository was last pushed on 2026-03-15 and is not archived, so commits are landing years after the newest tag.
Read those facts together rather than picking one. The tag list tells you that GitHub releases stopped being the distribution channel, which is consistent with a project that ships through npm and through the hosted editor build. The package version tells you that the code itself has kept moving well past what the tags imply. `CHANGELOG.md` is present at the root and is the place to check what a given version actually changed. One consequence for anyone pinning dependencies: the npm package name is `nunu-studio` with `main` pointing at `index.html`, so it is distributed more like a static application bundle than a library you import, and version resolution there will not match what you see in the releases list.
Editorial conclusion
nunuStudio is one of the few engines where you can open a URL, get a working editor, and author a scene without installing a native toolchain, which is still a genuine advantage for quick prototypes and for teaching. The visual editor covers materials, textures, shaders and code, the runtime embeds into a page with a single loadApp call, and WebXR support means a headset is a real target rather than a roadmap item. The complications are all in the packaging: the newest release tag is from 2019 while the package version has moved well past it, building still wants Java on the path alongside Node, and the install instructions disagree with themselves about peer dependencies. For evaluation, the hosted editor at nunustudio.org/build/editor/index.html is the fastest route; for anything you intend to ship, pin a specific commit and read the CHANGELOG.md rather than trusting the tag list.
Frequently asked questions
Can I use nunuStudio without installing anything?
Yes. A fully featured web version of the editor is hosted on the project page at nunustudio.org, and the README states it is tested with Firefox, Chrome and Microsoft Edge with mobile browsers supported.
What do I need installed to build nunuStudio from source?
Java, Node.js and NPM, with the java command working, then npm install --legacy-peer-deps if you are on Node 16 or later. Page dependencies install separately with cd source/page && npm install, and npm run build produces the editor, runtime and documentation.
How do I embed a nunuStudio scene in a web page?
Load the runtime with a script tag and call Nunu.App.loadApp with your .nsp project file and a canvas id. The README notes this works inside existing pages and with frameworks such as Angular or React.
Is nunuStudio free for commercial work?
Yes. The README states the project is distributed under an MIT licence that allows commercial usage of the platform without cost, and the licence is available on the GitHub page.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/tentone-nunustudio)