Show HN: Nexus.js - Fabric.js for 3D (punk.cam)
I was looking for a tiny library to easily transform both 2D & 3D objects with simple mouse / touch controls and a fixed camera, in the browser.
Like a simple 3D editor but without requiring the user to be a Blender expert.
Couldn't find anything lightweight, so I’m building one. Think Fabric.js but for 3D. Built entirely with Three.js / R3F.
Borrowed some inspiration from VR/AR interaction systems for controls.
Feel free to play with it and let me know what you think!
28 comments
[ 2.8 ms ] story [ 143 ms ] threadIf you don’t intend to support two finger gestures, you should probably at least hook in and disable them so they don’t disrupt the experience.
Also, are you planning on making this open source at some point? Fabric is nice in that it manages 2D canvas objects for you & you can build things like an editor on top, in this case as a library what would you consider the primitives on top of Three objects are? Could it be used to make an editor for a 3d level?
I’d need to find a good api to make it open source. It’s a mini ecs system handling the object states atm.
I think the main advantage over vanilla threejs would be built-in user-friendly controls and opinionated common object types (think remote glb models, plane images, etc)
This could be cool. The 2D interface for manipulating 3D is pretty interesting. 3D tends to be hard for folks and put a lot of folks off of trying to use it creatively.
Turn this into a bigger creative canvas. Drop the crypto stuff.
The only buttons are Objects, Stage, Camera, Get, Share
There is no "Add" button for me.
It was a lot of wrangling and unexpected behavior, and we ultimately ended up implementing a more traditional 3d gizmo - though the application was also really only meant to be used at a desktop with a mouse instead of also supporting touch controls.
I built something similar a few years back. My thing doesn't do textures its essentially just icons, text or shapes that can be layered, colored or extruded in 3d space on a 2d design canvas. demo: https://sg.halbe.works/
I built it on Skia, three.js and my own layer algorithm.
Looks amazing.