All Projects → Blackprint → Blackprint

Blackprint / Blackprint

Licence: MIT license
A general purpose visual programming. This is the main repository for Blackprint that contains source code of cable, node, and container sketch for visualization.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Blackprint

D3hex
The first dataflow based Hex-Editor!
Stars: ✭ 45 (-33.82%)
Mutual labels:  flow-based-programming
05 TestingGrounds
A Hunger-Games inspired FPS with large outdoor terrains. Advanced AI, basic networking, pickups, skeletal meshes, checkpoints and more. (ref: TG_URC) http://gdev.tv/urcgithub
Stars: ✭ 121 (+77.94%)
Mutual labels:  blueprint
stomt-unreal-plugin
Collect feedback in-game/in-app with STOMT for Unreal Engine.
Stars: ✭ 23 (-66.18%)
Mutual labels:  blueprint
UnrealMosquitto
A MQTT client with blueprint support for Unreal Engine 4, based on Mosquitto.
Stars: ✭ 41 (-39.71%)
Mutual labels:  blueprint
chappe
🧑‍💻 Developer Docs builder. Write guides in Markdown and references in API Blueprint. Comes with a built-in search engine.
Stars: ✭ 132 (+94.12%)
Mutual labels:  blueprint
CrashlyticsKit
The most powerful, yet lightest weight crash reporting solution for Unreal Engine 4
Stars: ✭ 25 (-63.24%)
Mutual labels:  blueprint
visual-graph-explorer
A simple graph explorer leveraging yFiles for HTML, neo4j bolt, implemented using VueJS and Vuetify
Stars: ✭ 13 (-80.88%)
Mutual labels:  blueprint
blueprint-nova-addon
A Blueprint addon which generates Nova resources
Stars: ✭ 61 (-10.29%)
Mutual labels:  blueprint
RyansUE4Helpers
Extremely helpful helper functions for developing Blueprint and C++ projects in Unreal Engine.
Stars: ✭ 55 (-19.12%)
Mutual labels:  blueprint
flow-synth
*UNMAINTAINED* A modular digital audio workstation for synthesis, sequencing, live coding, visuals, etc
Stars: ✭ 36 (-47.06%)
Mutual labels:  flow-based-programming
software-project-blueprint
Project blueprint for Fintech Open Source Foundation hosted projects.
Stars: ✭ 21 (-69.12%)
Mutual labels:  blueprint
simple-flask-s3-uploader
Simple and easy to use Flask app to upload files to Amazon S3. Based on Python, Flask, and using Boto3. Securely storing your AWS credentials as environment variables. Quick AWS S3 Flask uploader example.
Stars: ✭ 24 (-64.71%)
Mutual labels:  blueprint
LocalSimulation
This plugin allows you to essentially create PxScene or Physic Scenes by placing an Actor, and adding other Static Mesh Components and soon Skeletal Mesh components within this space. Adding Constraints, and Forces will work as expected, but now with the additional layer of abstraction so that simulation can be anchored to a transform.
Stars: ✭ 42 (-38.24%)
Mutual labels:  blueprint
tsu
TypeScript plugin for Unreal Engine 4
Stars: ✭ 62 (-8.82%)
Mutual labels:  blueprint
DlgSystem
Dialogue Plugin System for Unreal Engine | 🪞 Mirror of https://bit.ly/DlgSource
Stars: ✭ 136 (+100%)
Mutual labels:  blueprint
UnrealPlugin
Ultraleap SDK for the Unreal Engine.
Stars: ✭ 222 (+226.47%)
Mutual labels:  blueprint
generator-jhipster-svelte
Generate Svelte powered JHipster web applications
Stars: ✭ 44 (-35.29%)
Mutual labels:  blueprint
integration blueprint
Blueprint for custom_component developers.
Stars: ✭ 151 (+122.06%)
Mutual labels:  blueprint
BlueprintWebSocket
Documentation for BlueprintWebSocket available on the Unreal Engine Marketplace.
Stars: ✭ 13 (-80.88%)
Mutual labels:  blueprint
adonisjs-laravel-mix
An AdonisJs fullstack application blueprint with Laravel Mix
Stars: ✭ 17 (-75%)
Mutual labels:  blueprint

Blackprint

Blackprint

A general purpose visual programming interface for lowering programming language's steep learning curve, and introduce an easy way to experimenting with your beautiful project for other developer.

Blackprint Sketch is built using ScarletsFrame (performance and features).
Blackprint Engine is distributed separately for different runtime environment.
Blackprint Editor is created as a online IDE for browser.

Note

Please use Chromium based browser for better rendering performance.

Default Node's UI design was inspired by UE4 Blueprint and can be modified with HTML/CSS. If you're using Blackprint Editor you can choose different theme on the settings, and here's the code for reference if you want to create your own theme.

Documentation

Warning: This project haven't reach it stable version

The documentation haven't been finished, there are inline documentation on the template and some information on CONTRIBUTING.md if you want to use Blackprint before reaching v1.0.0.

Example

If you're looking for minimal sketch example to get started integrate for your editor project:

If you just want to execute exported Blackprint JSON, you can just use the engine. I also provide few simple example for different framework in case you want to use integrate to your frontend framework. For non-browser engine, there are example on it's repository. You can copy and paste the JSON to Blackprint Editor to see the nodes arrangement. The example below is using this arrangement.

Available Shortcut for Blackprint Sketch

Mouse + Keyboard Touchscreen Target Description
LeftClick + move 1 touch + move Container Select nodes and cable
branch
Middle/Right click + move 2 touch + move Container Move the container
Ctrl + MouseWheel
RightClick + MouseWheel
- Container Zoom the container
RightClick tap hold 1 sec Node, Cable, Container Context menu
Ctrl + LeftClick - Cable Create cable branch
Ctrl + RightClick - Port, Cable Node suggestion
Ctrl + Alt + LeftClick - Anything ScarletsFrame's element
inspector (dev mode)

Blackprint Roadmap

This roadmap could be changed on the future, feel free to request feature or report an issue.

Blackprint Engine

Name JavaScript PHP Golang Python C#
Browser Deno/Node.js
Blackprint Engine - -
Minimal example ✔️ Link ✔️ Link ✔️ Link ✔️ Link - -
Environment variables ✔️ ✔️ - - - -
Import modules from URL ✔️ ✔️ - - - -
Pausable and routable data flow 🚧 🚧 - - - -
Remote control 🧪 🧪 - - - -

🚧 = Under development (In the current working plan)
🧪 = Experimental/Alpha stage (Being tested and may have rapid changes)

With remote control you can easily manage connection to the target environment (Node.js/PHP/etc) from the browser. Please always run your app inside of container (like Docker) if you allow someone to remote control your system.

Example case where you may need remote control:

  • Creating Discord.js bot (because the library doesn't have support for browser)
    • Support for browser was dropped due to CORS at the Discord endpoint
  • Collaboratively work with your friend
  • Remotely modify your running application in realtime

  • Blackprint Sketch (this repository)
    • Mirrored sketch on detachable window
    • Mini sketch for preview
    • Hot Reload 🧪
    • Export single sketch to JSON
    • Importable minimal sketch for different project
    • Select and move multiple nodes at once
      • Bulk delete
      • Add feature to put nodes into a group
      • Create a function from nodes 🚧
    • Clicked nodes should be moved on front of the other nodes (z-index)
    • Automatically put cable on suitable port when it's dropped on top of a node
    • Add feature to arrange cable (cable branching)
    • Add variable's node
    • Add feature to hide some unused port on a node
    • Add feature to import node skeleton (use default node, and no execution)
      • Create addons for VS Code for previewing exported Blackprint
      • Add JSON preview for Visual Studio Code
  • Blackprint Editor (repository)
    • Demo
    • Basic nodes editor
    • Detachable window (with ScarletsFrame)
    • Add Environment Variables editor 🧪
    • Import sketch from URL
    • Move current sketch with minimap
    • Node list editor (right click and from side panel)
    • Error/log popup or overlay
    • Show overview or notice when importing nodes from URL
    • Multiple sketch workspaces or tabs
      • Export multiple sketch workspaces to JSON
  • Simplify node development for new developer
    • Auto blackprint.config.js import
    • Add example for using ES6 modules importing system
      • It's possible to use Snowpack or something else, but it currently can't compile .sf
  • Better documentation
    • Add TypeScript definition file
  • Nodes docs generator
  • Blackprint Nodes Package Manager
    • Use NPM registry for Node.js/Deno/Browser

Currently the main focus is Blackprint for JavaScript. PHP, and Golang engine could have some changes on the future.

Other possible plan

Blackprint Engine:

  • Lua (because it's embeddable language)
  • Java (or maybe Kotlin)
  • Rust (may get removed from this list)
  • C++ (for Arduino if possible)

Some Note

Each engine may have different compatibilities.
For the example:

  • WebAudio is only compatible in the browser.
  • Web server is not compatible in the browser.

Blackprint will act as an interface for each engine. To use it on NodeJS, Deno, or other JavaScript runtime, you can export it to JSON and use engine-js. But it doesn't mean exporting is just like a magic, you also need to write registerNode and registerInterface on the target engine. Except if someone already write the Blackprint Module (node and interface) on target engine, you can easily plug and play the module.

Contributing

To make things easier, please make sure to read the Contributing Guide before creating a issue/request.

If you want to compile and start the editor's web server on your machine, you can run the command below:

$ cd /your/project/folder
$ git clone --depth 1 --recurse-submodules https://github.com/Blackprint/Blackprint.git .
$ npm i
$ npm start
 >> [Browsersync] Access URLs:
 >> -----------------------------------
 >> Local: http://localhost:6789
 >> -----------------------------------

Build and run the unit test

If you're trying to run the unit test, you can use npm run compile and then npm test.

$ cd /your/project/folder
$ git clone --depth 1 --recurse-submodules https://github.com/Blackprint/Blackprint.git .
$ npm i
$ npm run compile
$ npm test

License

Blackprint is a MIT licensed open source project and completely free to use.

But please consider sponsoring the people who work and contribute amount of effort to maintain and develop new features for this project. Because without their contribution, this project may get slowed down or possible to getting paused.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].