nunuStudio - Framework/IDE for 3D applications

Hi

nunuStudio is a three.js based framework/IDE for 3D web applications, it has support for physics using cannon.js, particles using SPE and there is a visual editor for scenes, particles, materials etc.

My intention with this project is to enable more web developers and artists with low programming knowledge to be able to produce 3D content, i have also tested the platform to teach javascript programming to kids (worked pretty well).

The project webpage is https://nunustudio.org/ and he Github page github.com/tentone/nunuStudio

Try the web version at https://nunustudio.org/editor/editor.html.

The platform is still under development here’s a small list of stuff that i want to add before making it beta, any feedback is welcome:

  • Mutiple tab at same time
  • Animation object for keyframe animation
  • Better VR support (VRRenderer)
  • Post-processing support
  • Physics shape editor

Cheers

5 Likes

this looks great! but at the same time i’m curious why the effort wouldn’t go into extending what’s already there with the threejs editor? it does a lot of the work a small org needs in an editor, but is missing certain key functionality. for example, i can totally configure my scene by importing my fbx / gltf / dae / obj / whatever models, map some textures, throw up my lighting, and now i’ve got a scene that i can export and load into threejs with a single line of code. however, with threejs i’m missing the ability to do:

  1. animations - even a minimal ability to preview and embed in the exported scene file would go a long way here.

  2. particle effects - we’re able to able to use nunu to preview our particle effects, then take the exported file, remove the nunu specific parts, add a little bit of parsing logic, and load it into threejs using SPE. i guess there is a smarter way of doing this, but in my ideal world it all happens in one place.

  3. physics - it seems like you chose cannon well :slight_smile:

nunu does a lot of this right, but then i can’t do something like load in an fbx file. i also hesitate to introduce yet another dependency that later on may be difficult for us to back out of if needed. plus, these two editors are already doing a lot of similar work. i certainly understand the benefits of approaching the project as an entirely separate beast, but is it really necessary or could the current threejs editor be made to work as a more generic presenter of your threejs and js objects?

1 Like

Hi,

At the beginning i was going to write my own graphics engine actually, but since threejs already has a great user base i decided to learn how it works and help to improve it instead.

There are actually some changes in nunuStudio relative to threejs the resource management is a bit different, serialization was changed to export properly resources and im now using a binary representation of json files, CubeTexture is also different (has support for equirectangular projection as well), etc… i should probably document these better.

I have tried as much as possible to integrate everything that i make inside threejs but some stuff does not fit in the library. (Resource management as an example).

You should be able to import fbx files without problem inside nunuStudio, im currently working on animation integration inside i do not recommend nobody to use it for production at least until i release a beta version on the desktop.

Hello,

It seems awesome but I don’t feel comfortable using it. It could be because I am used to Blender, but I miss some very basic and yet important features regarding user inputs.

The first issue is the way you navigate with the editor camera and how the app looses track of the mouse pointer when it leaves the viewport. It doesn’t behave exactly the same when you try to move objects, but then again the cursor is limited by the boundary of the screen.

I like mouse controls like this : https://threejs.org/examples/#misc_controls_pointerlock

and I like what they have done with Blender : when you use your mouse to pan, rotate the camera or move objects, the cursor position is displayed modulo the viewport dimensions but keeps incrementing the input, which means that you don’t need to reselect elements, reposition the camera, etc. when your cursor reaches the edge of the window.

(sorry, this was verbose, but I don’t know how else to explain it).

I would also like to be able to use shortcuts to move and rotate objects instead of having to use the little widget and hold the mouse button.

It seems stupid to comment such basic things but since I can set up a portion of a scene within Blender and place named dummy objects where I want to put things generated at runtime, if I find painful to navigate in your editor, I will not use it, because what you do with your sliders and such, I can do with code, and placing things in the scene is more user friendly with my modelling software.

I hope this helps.

Changing control systems between apps always feels kind of weird though. I mainly use 3DS Max and when I occasionally have to use Blender the controls system seems very counter-intuitive.

I agree, which means that, maybe, it would be beneficial to implement some alternate control systems so that people from various backgrounds can include this software in their workflow more easily.

I remember that within the Adobe suite, the different applications didn’t have the same controls for basic things such as editing text frames and I always ended up deleting what I had typed in one app or adding line breaks in another app because one would allow you to deselect the text frame with the Enter key and the other one with the Escape key (which cancelled your action in Photoshop)…

It use to drive me completely nuts because I was going back and forth between these two apps 24–7, and if I had had the choice, I would have changed software because of these inconsistencies.

nunuStudio already support some alternative modes to navigate in the editor, in the settings panel there is also the orbit mode and i’m available to add more options, i know how painful it can be to switch between editing interaction modes, when comes to interaction there is no one mode fits all :slight_smile:

Regarding the shortcuts to change editing tool (resize, move, rotate), what would you suggest? maybe CTRL+1, CTRL+2 and CTRL+3?

Speaking of keyboard shortcuts… :innocent: I am French, I use a French keyboard and your layout for panning the camera doesn’t work well for me.

Instead of hard-coding this kind of thing, it could be best to allow people to set their shortcuts, or even better: import a preference file from their software. Of course, it would take you some time to figure out how to parse them…

Great IDE :smiling_face_with_three_hearts:. I am serious thinking to switch on it. I have found some minor things that can take improvements but is not the time to discus at the moment.
I have a important question about the include() function. I tried to include in a scene script more than one libraries. I have the suspicion that the function can’t receive more than one argument.
I tried to put more than one arguments inline, in array, even in a string (comma delimited).
But ιn runtime, I get warns like “Error compiling script code TypeError: Cannot read property 'data' of null” and finaly error “Uncaught Error compiling script code”.
I tried to call include() function multiply times with a single argument inside the script. Then in runtime I do not get any error, but… It looks like including only the first library and ignoring the others. Do you have any idea what may I do wrong?

Thank you in advance.

ps. (Sorry for my poor English).