Skip to content

scottdmilner/dungeon-pipeline

Folders and files

NameName
Last commit message
Last commit date

Latest commit

58089ea · Mar 4, 2025
Nov 23, 2024
Nov 20, 2024
Mar 4, 2025
Aug 10, 2024
Feb 25, 2025
Nov 20, 2024
Nov 20, 2024
Nov 20, 2024
Nov 23, 2024
Nov 20, 2024
Nov 23, 2024
Jan 30, 2024
Nov 20, 2024
Nov 23, 2024
Jul 29, 2024
Oct 11, 2024
Aug 10, 2024
Oct 11, 2024

Repository files navigation

dungeon-pipeline

An OS-agnostic, portable, extensible 3D pipeline for the BYU Center for Animation's 2025 Capstone film, Love & Dungeons.

dungeon-pipeline is currently being used on EL8 and Windows 10 systems. It should also be functional on macOS systems, but that has not been tested.

Repo structure

dungeon-pipeline/
├── Dungance Painter.lnk  # Linux and Windows launchers for DCCs. 
├── Dungaya.desktop       # These are at the root so they're easy for artists to locate
├── ...
├── LICENSE
├── pipeline
│   ├── env.py.md         # How to build set up env.py
│   ├── lib               # Python libraries and other resource files
│   ├── __main__.py
│   ├── pipe              # Python module for code that is imported and run from the DCC
│   ├── shared            # Utilities used by `pipe` and `software` modules
│   └── software          # Module called by `__main__.py` to initialize environments and launch DCCs
├── pyproject.toml
└── README.md

Setting up a copy of dungeon-pipeline

  1. Fork this repo and clone it to the production location.
  2. Create an pipeline/env.py file following the specifications in pipeline/env.py.md. This will get things like ShotGrid auth set up, and provide OS-specific DCC executable paths.
  3. Install needed python libraries into pipeline/lib/python/any. (This will soon by managed via Poetry (Issue #137), for now see the list in .githooks/setup-venv.sh).
  4. Clone branches for development locally, copy over the env files and get to work!

Setting up a dev environment in the labs

  1. Generate a GitHub SSH key and upload it to your GitHub
    • ssh-keygen -t ed25519 -C "yourgithubemail@email.com"
      cat ~/.ssh/github.pub
    • When it asks for a path, type '/users/animation/yournetid/.ssh/github'
    • Only provide a passphrase if you want to type that every time you push or pull
    • Go to https://github.com/settings/keys and add the contents of ~/.ssh/github.pub as a New SSH key
  2. Make a local copy of the git repo
    cd ~/Documents
    git clone --recurse-submodules -c core.sshCommand='ssh -i ~/.ssh/github' git@github.com:scottdmilner/dungeon-pipeline.git
    cd dungeon-pipeline
  3. Configure the git repo to use the new SSH key and our git hooks
    git config --add --local core.sshCommand 'ssh -i ~/.ssh/github'
    git config --local core.hooksPath .githooks/
  4. Check out a dev branch for the feature you are working on (or create a general dev branch (yourname-dev))
    git checkout -B feature-name-yourname 
    # don't need -B if it already exists
    git push --set-upstream origin feature-name-yourname

Code Style

For this project, we are using the Black style of Python formatting. There is a Git pre-commit hook that will automatically run the ruff formatter on your code whenever you make a commit. If it changes any of your formatting it will print a message that looks like this:

Formatting with ruff...
3 files reformatted, 12 files left unchanged

After that, you can amend your commit to include the changes that ruff made with

git add <changed files here>
git commit --amend

This should generally be avoided, but if you need to override the Black style for some reason, use the following comments to suppress ruff:

...
# fmt: off
unformatted code here
# fmt: on
...