GithubHelp home page GithubHelp logo

doytsujin / blackjack Goto Github PK

View Code? Open in Web Editor NEW

This project forked from setzer22/blackjack

0.0 1.0 0.0 5.29 MB

A procedural, node-based modelling tool, made in rust ๐Ÿฆ€

License: MIT License

Rust 97.99% Lua 2.01%

blackjack's Introduction

Blackjack

Your Rusty ๐Ÿฆ€ procedural 3d modeler

Latest version Documentation MIT

Blackjack is a procedural modelling application, following the steps of great tools like Houdini or Blender's geometry nodes project. At its core, Blackjack is a simple node-driven interface where you can compose operations to create a 3d mesh in a non-destructive way.

Main interaface of Blackjack

Gif showcasing procedural modelling in Blackjack Another gif showcasing procedural modelling in Blackjack

Features and goals

Blackjack does not aim to replace an industry powerhouse such as Houdini. Instead, it aims to provide a less cluttered, more robust and user-friendly experience for a small subset of the features that make these tools a great fit in the world of game development and real-time simulations.

Here are the main goals and philosophy behind blackjack, but note that this shows the direction where things are going, not their current state.

  • Procedural polygonal modelling, first and foremost: The main focus in Blackjack is the creation of low-poly procedural assets like the ones one would see in videogames. In particular, surface extraction of volumetric data is not among its goals.
  • Flexible node-based interface: Build complex node graphs, create reusable functions, and tweak every parameter in real-time!
  • Integration with popular game engines: Export your procedural assets as tiny programs and tweak their parameters at runtime by adding a simple library to your engine of choice.
  • Error resilience, crash resistance: When things go wrong, Blackjack will make an effort to respect your time as a user and not lose your work. Errors will be clearly communicated and fixing any bugs leading to a crash will take the highest priority.

Install and usage

Note: A crates.io version cannot be published due to unreleased dependencies. Blackjack depends on the bleeding edge version of some crates and requires custom forks for some others. This situation may change once development stabilizes.

Here are the steps in order to try out the early development version of Blackjack. Binaries and easier installation methods will be provided in the future. The steps below require a complete Rust toolchain using cargo:

  1. Clone this repository, and make sure to download LFS files. In some systems, this may require separately installing a git-lfs package:
git clone https://github.com/setzer22/blackjack
git lfs install
git lfs fetch --all
git lfs pull
  1. From the same folder, run cargo run to launch Blackjack.

Usage

Some minimal usage instructions. Please do note that these can and will change frequently during early development:

  • The bottom section of the screen is the node graph.
  • Use right click to open the node selector. Find a node and spawn it by clicking on it. You can also use the search bar.
  • Nodes can be dragged around, and its widgets interacted with using the mouse.
  • Dragging the mouse between two nodes' ports will create a connection.
  • Use the 'Set active' button under a node to make it render to the screen.

Tech stack

Blackjack is built using Rust ๐Ÿฆ€ and stands on the shoulders of giants. Here's a shout out to some great rust crates being used in this project:

  • rend3 is used for all rendering purposes.
  • egui is used as the UI toolkit powering all 2d interaction.
  • wgpu, as the base of rend3, is used for all custom visual effects.

Tool Maturity

Blackjack is still under active development. Many features are missing and are bound to change. For now, no promises are made with regards to stability, but API breakage will be considered only when absolutely necessary.

Contributing

Contributions are welcome! Before writing a PR, please get in touch by filing an issue ๐Ÿ˜„

blackjack's People

Contributors

setzer22 avatar yjh0502 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.