PlayCanvas visual programming with Blackprint

Hi, I developed Blackprint and tried to integrate my simple editor with PlayCanvas :smiley:

Blackprint is a visual programming system that can help you manage the data flow between each programmed nodes. Blackprint doesn’t generate code/script, but it’s running on top of engine who control the data flow between the custom nodes. It can export the diagrams from the editor as .json and import it to the engine for execution.

Why Blackprint doesn’t generate code/script?

Blackprint is targetting to support multiple different programming language, and there’s a lot of work that I can’t handle by myself if I tried to generate code from nodes and the connected cables for each languages. But it may still possible if you can create a module to generate codes, or maybe parsing the exported diagram .json and generate code from it.

Blackprint is distributed in two separated module:

  • Blackprint Sketch: a minimal nodes editor that can be embedded to other project
  • Blackprint Engine: an engine that control data flow between nodes, this engine also being distributed in different language like Python/Golang/PHP.

Internally Blackprint Engine will only have internal nodes (variable, function, event), it doesn’t internally include nodes like Math, PlayCanvas, Networking, etc. Every additional nodes need to be imported into the engine via URL or using module import/require.

Want to try it out?

But first please expect something still incompleted and have bug. I would be happy if you try to use it and help contributing after found something that need to be added/fixed, tbh I also not too familiar with PlayCanvas’s API and currently still work on something else. But at least I can provide simple example for you to try it:


Blackprint’s repository
Used nodes:

Happy experimenting! :tada:

I hope Blackprint can brings the power of visual programming experience to PlayCanvas’s community.

Note

Blackprint nodes’s UI design may looks similar with Unreal Engine’s blueprints, but the engine/sketch module is engineered by me without copying UE’s code or use their code as my reference. In case you want to change the design, you can easily customize it by modifying the CSS rules.

5 Likes

Very cool, nice job!

1 Like