Hi!
In our spare time, we’re working on “WorkShop” — a platform for building Web3D applications without the need to write a lot of code.
Unlike traditional visual programming systems, we’re not trying to replace low-level code primitives (like variables or simple functions) with nodes. Instead, we enable you to use and create nodes that encapsulate meaningful parts of your app’s logic.
Here’s what makes our approach different:
Each connection is a reactive data stream.
The system automatically handles stream readiness and assembly. The developer’s job is just to connect and configure them.
The system is typed at the level of data streams between blocks.
Developers can create and reuse any blocks, but we prefer logically complete blocks that perform a specific function.
In other words, instead of operating with variables inside blocks, we work with larger, meaningful chunks of functionality. This is the key difference.
For example, rather than combining multiple particle system nodes to simulate fire, it’s better to use a single ‘Fire’ node — while still keeping a generic ‘ParticleSystem’ node available when needed.
!!! This approach allows us to move away from the traditional tree-based control flow, which is inconvenient for games and simulators, toward a kind of “layered, plugin-based soup”, which suits such tasks much better.
The 3D rendering engine in the project is — of course — Babylonjs ))
Right now, we have a working prototype that can be used to build simple games and applications. The complexity is limited only by the available plugins, which can and should be extended.
We’re looking for feedback on this idea (criticism is welcome!) — and of course, like-minded collaborators
As a person who participate in creation of some nodes I may say that when system will have enough blocks it will be very easy to build more or less complex experiences. Even now we built a prototype of Lines3 game with the map and gameplay made only with WorkShop nodes. You can also group your nodes in a bigger structures even without code (like we can do it in BabylonJS NodeEditor or Blender) while you have ability to write your own block and add it to system. @Blax Glad to see that you present the system here!
That’s understandable.
Maybe it’s worth elaborating on the question a bit more.
The question was whether forum participants, based on their experience, see this kind of project as potentially useful for themselves.
The Workshop concept is not just a wrapper around Babylon.js entities.
It’s a slightly different approach to building the logic of 3D simulators — an attempt to tackle the common issues of complex and often messy asynchronous runtime logic, control flows, and reactive links.
Of course, any Babylon.js-based implementation draws interest, but let’s say this system were to open up as a beta version tomorrow (not really, but hypothetically) — would there actually be interest from people in trying to use it for their own projects?
This is a big question for us, because fully developing it into a feature-complete product for public use is one level of time investment, while keeping it as a utility just for our own internal use is a very different one.