• Stars
    star
    2,051
  • Rank 21,698 (Top 0.5 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created about 8 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Web powered cross-platform 3D, WebXR game engine.

GitHub versionnpm versionGitHub issues GitHub stars FOSSA Status

  • nunuStudio is an open source game engine for the web it allows designers and web developers to easily develop 3D experiences for the web.
  • Powered by three.js can run directly in the web or be exported as desktop application trough nwjs.io.
  • Fully featured visual editor, supports a wide range of file formats, the tools are open source and completely free to use for both personal and commercial usage.
  • Visual scene editor, code editor, visual tools to edit textures, materials, particle emitters and a powerful scripting API that allows the creation of complex applications using JavaScript or Python.
  • Fully featured web version of the editor is available on the project page.
  • The web version is tested with Firefox, Chrome and Microsoft Edge, mobile browsers are supported as well.

  • API Documentation with full details about the inner working of every module are available. These can also be generated from the project source code by running npm run docs.
  • Basic tutorials are available on the project page. The basic tutorials explain step-by-step how to use the editor.
  • To build the project first install Node.js LTS and NPM:
    • The building system generates minified builds for the runtime and for the editor
    • Documentation generation uses YuiDocs
    • Install dependencies from npm by running npm install --legacy-peer-deps
    • Build editor, runtime and documentation, run npm run build
  • Webpage of the project is built using Angular and is hosted on GitHub Pages

Screenshots

Features

  • Visual application editor
    • Drag and drop files directly into the project (images, video, models, ...)
    • Manage project resources.
    • Edit material, textures, shaders, code, ...
  • Built on three.js library w/ physics by cannon.js
    • Real time lighting and shadow map support
    • three.js libraries can be imported into the editor
    • Wide range of file formats supported (gltf, dae, obj, fbx, 3ds, ...)
  • NW.js and Cordova exports for desktop and mobile deployment
  • Compatible with WebXR for Virtual Reality and Augmented Reality

Build

The project uses Webpack to build and bundle its code base.

  • The building system generates minified builds for the runtime and for the editor
  • JavaScript is optimized and minified using Uglify
  • Documentation generation uses YuiDocs

Steps needed to build the project:

  1. To build the project first install Java, Node.js and NPM and ensure that java command is working properly.
  2. Install dependencies from npm by running npm install.
    1. If running on Node >=16 run npm install --legacy-peer-deps instead
  3. Install the dependencies for the project webpage running cd source/page && npm install
  4. Building/running
    1. Building: to build editor, runtime and documentation, run npm run build
    2. Running: To start the editor locally for development and testing run npm run start

Embedding Application

  • Application developed with can be embedded into already existing web pages, and are compatible with frameworks like Angular or React.
  • To embed applications in HTML pages the following code can be used, the application is bootstrapped using the loadApp(file, id) method.
<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>

Vue.js with Nuxtjs

  • Build nunu.min.js and place into static/js folder of your nuxt instance
  • Place canvas element into your template area where you want it, for example:
<template>
  <div>
    <canvas
      id="canvas"
      width="800"
      height="480"
    />
</div>
</template>
  • Add the script to your head function of the page you want the 3D integration on (or place is into your global head)
head() {
return {
      script: [
        {
          hid: 'Nunu',
          src: 'assets/js/nunu.min.js',
          defer: true,
          callback: () => {
            Nunu.App.loadApp('assets/file.nsp', 'canvas') //add file to load in here
          },
        },
      ],
    },
  }
  • You are now able to address Nunu as usual within the app.

License

  • The project is distributed under a MIT license that allow for commercial usage of the platform without any cost.
  • The license is available on the project GitHub page

FOSSA Status

More Repositories

1

geo-three

Tile based geographic world map visualization library for threejs
TypeScript
605
star
2

potree-core

Potree point cloud viewer library core components for easier integration in a three.js project.
JavaScript
160
star
3

aruco

Aruco marker detector and pose estimation for AR and Robotics with ROS support
C++
123
star
4

tello-ros2

ROS2 node for DJI Tello and Visual SLAM for mapping of indoor environments.
C++
112
star
5

enva-xr

WebXR AR occlusion, lighting, interaction and physics with three.js
JavaScript
111
star
6

monodepth

Python ROS depth estimation from RGB image based on code from the paper "High Quality Monocular Depth Estimation via Transfer Learning"
Python
49
star
7

vkCraft

Minecraft clone written with C++ and Vulkan, node structure for infinite world chunks.
C++
49
star
8

dartboy

Game boy color emulator written in Dart using Flutter for cross platform (Desktop, Mobile) user interface.
Dart
35
star
9

IDKwGL

WebGL 3D rendering framework w/ support for file loaders, multiple material types and basic AABB physics.
JavaScript
18
star
10

escher.js

2D graphics canvas framework for easier interactive web graphics.
JavaScript
18
star
11

syncinput

Synchronous keyboard and mouse input for web applications. Useful for games and canvas / webgl synchronous content in web applications.
TypeScript
17
star
12

constellations

Particle collision with quad-tree experiment inspired by games like Eufloria and Auralux.
Java
13
star
13

gotracer

Multi-threaded software raytracer written in golang.
Go
8
star
14

car-tracker-ionic

Mobile web based application to track car GPS position for A11, ST-901, GT01, and GT09 SMS based trackers.
TypeScript
7
star
15

car-tracker-flutter

Car tracker GPS flutter based mobile application for A11, ST-901, GT01, and GT09 SMS based trackers.
Dart
7
star
16

max-clique

Graph theory experiments for the maximum clique problem using python.
Python
4
star
17

checkers

Checkers board recognition computer vision system using OpenCV
C++
3
star
18

semeionNet

A set of machine learning experiments with the semeion and MNIST handwritten digit dataset using tensorflow
Python
3
star
19

wallrunner

Wallrunner is meat boy like platform game. Mobile and desktop crossplatform game source code.
Java
3
star
20

covisim

COVID-19 virus data dashboard and statistical simulation of the virus spread
JavaScript
3
star
21

street-monitor

Road vehicle and pedestrians tracker to monitor street activity.
C++
3
star
22

tentone

Public profile special repository, no code to see here!
Brainfuck
2
star
23

webkinect

Provides access to Microsoft kinect sensor data (skeleton, color camera and depth camera) from HTTP using WebSockets..
C#
2
star
24

xenoparticles

Real-time fluid-like particle simulation using the xenomai framework.
C++
2
star
25

depthset

Depth image dataset generator from 3D models for machine learning experiments.
JavaScript
2
star
26

image-geometry

Triangulated image geometry generator from transparent images for three.js
JavaScript
2
star
27

heist

Heist to the museum, project for the Distributed Systems course, in the University of Aveiro
Java
1
star
28

ganimator

2D animation system designed to produce content for games. Only supports LibGDX for now.
Java
1
star
29

mssql-uuid

Go implementation of MS SQL Server Uniqueidentifier type.
Go
1
star
30

cork

Cork stopper quality analysis and comparison vision system using RGB shadow decomposition for industrial application.
C++
1
star
31

bomberguy

Bomberman like game.
C#
1
star
32

retris

Tetris game written in rust w/ macroquad.
Rust
1
star
33

crosstabtalk

Browser tab/window local message communication library for cross-tab data exchange and syncronization.
JavaScript
1
star