[HN Gopher] Show HN: Nexus.js - Fabric.js for 3D
___________________________________________________________________
Show HN: Nexus.js - Fabric.js for 3D
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!
Author : ges
Score : 82 points
Date : 2025-06-16 20:33 UTC (1 days ago)
(HTM) web link (punk.cam)
(TXT) w3m dump (punk.cam)
| kube-system wrote:
| Interesting, what are some use cases for something like this?
| superconduct123 wrote:
| Aerospace industry, watermelon industry
| ges wrote:
| And sanitary industry
| ges wrote:
| I've initially started building it for AR / face filters but
| figured out it could be nice to abstract the whole simple
| positioning / controls logic as a stand alone lib.
| guigui wrote:
| On the default white background, the control buttons (move,
| rotate, roll...) look disabled to me.
| ges wrote:
| Agreed. I've added the white background last minute because it
| looked better. But texts don't look so good on it.
| ges wrote:
| Fixed!
| hoppp wrote:
| Cool. I put a poop on a rocket ship. Now what else can I do with
| it?
| ges wrote:
| Nothing else. You've reached the peak.
| Eduard wrote:
| two-finger input doesn't work on my Android Chrome: a previously
| placed banana just glitched around, then jumped out of viewport.
| ges wrote:
| Sorry for the banana. Yes two-finger gestures feel natural for
| zooming. I just didn't implement them properly yet because i
| figured out there were cross browser issues with them on safari
| mobile. I'll get something working.
| WhitneyLand wrote:
| It looks like the UX freaks out when you try to do something like
| pinch zoom.
|
| If 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.
| ges wrote:
| Yes
| Flux159 wrote:
| This is pretty interesting - how has your experience been with
| R3F? I've built a small game level with it before and I'm
| wondering if I want to go all the way and build something larger.
|
| 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?
| ges wrote:
| I like the fact it allows you to write clean declarative code.
| Imperative becomes quickly messy imo.
|
| 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)
| DecoySalamander wrote:
| It's great for organizing your scenes, and at least for me,
| it's far more readable than raw Three.js code. Unfortunately,
| games, especially real-time ones, don't map well to idiomatic
| React code. You might find yourself putting bits of game logic
| into various awkward places. Still, I don't think there's a
| better alternative for the web, except maybe Threlte if you're
| fine with a smaller ecosystem.
| echelon wrote:
| > Feel free to play with it and let me know what you think!
|
| 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.
| ges wrote:
| Thx for the feedback. I agree.
| socalgal2 wrote:
| > Tap the Add button below to get started
|
| The only buttons are Objects, Stage, Camera, Get, Share
|
| There is no "Add" button for me.
| ges wrote:
| Good catch. There was one before, just didn't update this
| message yet!
| fakedang wrote:
| Click objects.
| ges wrote:
| Updated
| kookamamie wrote:
| It says it's "next gen" - how is that? Besides that, I think the
| UX could use some improvements - the landing page captions look
| glitched and the UI iconography looks "murky", for the lack of
| better word. Nice effort, though.
| Bengalilol wrote:
| I wasn't able to move the camera, am I missing something obvious?
| lvncelot wrote:
| Ha, that brings me back trying to make Fabric.js somehow usable
| for a 3D viewport at a startup I was working at a while ago. (We
| used esm.js instead of WASM for the 3d engine, to give you an
| idea)
|
| 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.
| eblahm wrote:
| Really impressive app! I'm not sure what I would use it for but
| definitely cool and impressive.
|
| 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.
| popalchemist wrote:
| Is there a react/vue wrapper?
|
| Looks amazing.
___________________________________________________________________
(page generated 2025-06-17 23:02 UTC)