setzer22 / blackjack

A procedural, node-based modelling tool, made in rust 🦀
Mozilla Public License 2.0
1.42k stars 64 forks source link

Your Rusty 🦀 procedural 3d modeler

GitHub CI MPL

ARCHIVED REPOSITORY This repository is now archived because of a variety of technical and political reasons that made me loose my motivation to continue contributing to the Rust community in my free time.

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

Another gif showcasing procedural modelling in Blackjack A third gif showcasing procedural modelling in Blackjack 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.

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, with a minimum supported Rust version (MSRV) of 1.62.0.

  1. Clone this repository, and make sure to download LFS files. In some systems, this may require separately installing a git-lfs[^1] package:
    git clone https://github.com/setzer22/blackjack
    git lfs install
    git lfs fetch --all
    git lfs pull

[^1]: Linux users can install git-lfs with their distro's package manager (apt install git-lfs / yum install git-lfs / pacman -S git-lfs). MacOS users using homebrew can use brew install git-lfs. Other users should follow the git-lfs install instructions.

  1. Install build dependencies. This may not cover everything, please file an issue or a pull request if you find anything missing:

    • Ubuntu/Debian: sudo apt install libfontconfig-dev
    • Arch Linux: sudo pacman -S fontconfig
    • Fedora: sudo dnf install fontconfig-devel

      Note: The fontconfig native dependency is temporary, and will no longer be necessary once this upstream issue is fixed: https://github.com/rust-windowing/winit/issues/2373

  2. From the same folder, run cargo run --release --bin blackjack_ui to launch Blackjack.

Usage

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

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:

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 😄