Node Assets — requesting feedback & discussion

We hear how difficult it can be to get your 3D assets ready for the web. Between converting file formats, cleaning up messy models, and optimizing for the web, pre-processing assets often requires some combination of scripts, CLIs, GUIs, or import-export roundtrips through DCC tools.

We’ve been exploring ways to make that easier.


I want to share a prototype of a concept I’ve dubbed Node Assets: a composable pipeline to help you turn source files into Babylon-ready outputs before you ship.

It’s designed for build-time asset pipelines and focuses on 2 core job families:

  • Converting between formats — e.g., Import FBX -> Export glTF
  • Optimizing for the web — e.g., Simplify Meshes -> Resize Textures -> KTX2 -> Draco

To make this concrete, here’s a rough, visual proof-of-concept called the Node Assets Editor (NAE)

You can mess around with it here: Babylon.js Node Assets Editor. Included are some sample use cases — open the library to find them.


We’d love to know: would you find this useful? Why or why not? All thoughts are welcome! :slight_smile:

While Babylon.js has always been renowned for its extensive and helpful documentation, for some reason, anything Node-related is almost entirely undocumented. It’s as if it’s implied that these are self-evident matters we absorb with our mother’s milk. :slight_smile:

Of course, Node Assets Editor is still just a prototype for now, but would it be a bad idea to ask an agent to provide brief textual explanations for each block?

I also would recommend to switch from ktx2-encoder to babylonpress-ktx2-encoder - it is several times faster for GLB models with more than 1 texture.

npm i babylonpress-ktx2-encoder

For benchmarks, API and other info see glb-optimizer-v2/packages/babylonpress-ktx2-encoder at master · eldinor/glb-optimizer-v2 · GitHub

Possibly an uncommon use case, but there’s some situations in which I prefer to assign materials dynamically, which means any default materials and textures assigned to a loaded asset are just bloating the file size and extending download time, so it’d be nice to have a “Strip materials” (unsure what to call it) option that strips the heavy materials and textures but retains material slots/UV channels etc.

Along with build-time, an option to use an NAE pipeline in browser (run time), making use of worker threads, would help several use cases without adding a server round trip:

  1. online assets
  2. in-browser procedurally-generated assets
  3. uploadable assets

I know this is a pretty big ask, though.

From the perspective of a gaming project: no, not really.

I use Blender for animations, model design, some material designs and some image generation. With the Blender python api (BPY) I have access to all of Blender’s feature set. Since design and automation live in Blender it is all perfectly aligned. I do not see any point in bringing in another tool into the pipeline. Particularly so since I do not see any feature of NAE which Blender does not provide already.

Hope this post is alright. Do not want to be negative but I sort of have to in order to express my perspective :shaking_face:


And what @labris said about the documentation :grin:

The main difference is that NAE does it in browser. It matters.