Skyemou5 / Pysoma

A crossplatform Houdini project management and pipeline tool for smaller teams, students, and classrooms

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Update

I decided to come back to this to get it working then keep working on the other tool

Pysoma

A crossplatform Houdini project management and pipeline tool for smaller teams, students, and classrooms.


Pyrosome

Pyrsomes are actually colonies of small jellyfish creating a whole. I thought that was a fun way to think about group creative projects. In a way this tool helps multiple people be part of a whole, and because it's houdini, life, mathematics and growth are common insterests of houdini artists.


Houdini Pipeline Tool

This was developed for my needs during my senior project using Houdini with a small team. I needed to ensure the project enviornment was the same accross computers and platforms. Additionally I needed a way to run the tool on it's own without needing to configure each computers python enviornment.

TODO

  • Refactor main file into a library to clean up code
  • Build standalone app for each platform
  • add support for choosing houdini versions - currently 18.5.759 is hardcoded in for my project
  • refactor to properly serialize data with yaml and only use env files for enviornments
  • Implement unit testing
  • Implement project scanning
  • refactor print statements for an actual logging system
  • impliment CLI tool that lets you specify a YAML file to use a project template
  • create better documentation

Roadmap

  • add support for game projects with unity and unreal and possibly godot
  • add support for houdini engine and respective game engines
  • add hou.py configuration for opening houdini projects
    • new file
    • default node setup
  • possible branch project name pyrasoma?
  • possibly rewrite in rust
  • add support for houdini package management
  • use yaml for configuration
  • Add database for viewing assets in project and dependencies
  • add tool for setting up project templates
  • add integration with version control
  • tightly integrate USD
  • network support
  • support renderfarm setups
  • tool for documenting project
  • project report generator

How to use the tool

  1. Run it as a python script from the cloned repo.
  2. Integrate it into you're system on UNIX systems.
  3. Use the compiled versions and rus as an executable.

There are command line arguments

usage: main.py [-h] [-pn PATH_PROJECT] [-un [GUI_PROJECT]] [-cn [CURRENT_DIR_PROJECT]] [-pl [LIST_PROJECTS]] [-rs [RESCAN_DIRS]]
               [-cp [CLEAR_CACHE]] [-i [INIT]] [-I [INIT_ONLY]] [-l [LOAD_LAST]] [-? [INFO]]

optional arguments:
  -h, --help            show this help message and exit
  -pn PATH_PROJECT, --path-project PATH_PROJECT
                        create new project at input path
  -un [GUI_PROJECT], --gui-project [GUI_PROJECT]
                        create new project at location with gui
  -cn [CURRENT_DIR_PROJECT], --current-dir-project [CURRENT_DIR_PROJECT]
                        create new project at current path
  -pl [LIST_PROJECTS], --list-projects [LIST_PROJECTS]
                        List currently cached projects
  -rs [RESCAN_DIRS], --rescan-folders [RESCAN_DIRS]
                        rescan cached directories
  -cp [CLEAR_CACHE], --clear-project-cache [CLEAR_CACHE]
                        clear project cache
  -i [INIT], --init [INIT]
                        Forces initialization
  -I [INIT_ONLY], --init-only [INIT_ONLY]
                        Forces ONLY the initialization step
  -l [LOAD_LAST], --load-last [LOAD_LAST]
                        Load last opened file
  -? [INFO], --info [INFO]
                        Shows another help file

Setup

If you want to use source code and not the docker image make sure you create a virtual enviornment and then use the requirements.txt to install the dependencies.

easiest to set up with docker/podman creat requirements text pip3 freeze > requirements.txt run podman build -t pysoma .

or

download the image

When running the docker image make sure you enable user input with the right flag

podman run -it pysoma

[!NOTE] I recommend creating an alias for the docker container so you can run pysoma without typing out all the docker commands.

How it works

Default behavior

  1. Checks if there are any projects in the current directory of the script/app
  2. If there are none it creates one after asking for a name
  3. Asks user to create or open a shot
  4. sources houdini, sets enviornment variables, opens houdini

Things to note

You can customize this behavior, for example you can add directories for the tool to scan for existing projects.

It saves a list of the existing projects in a hidden temp.env file in the same directory as the script or executable.

Each project will have an env file that shouldn't be pushed to a project repo as it will hold that users paths.


Contributing

Make sure and set up a python virtual env - I used venv - using the requirements.txt


Other

I'm no python expert and would love input, and fixes, especially in development workflows, and deployment systems and such. I'm still learning, but I hope this is useful.


Hope this helps someone else, If you have questions send me a message.

About

A crossplatform Houdini project management and pipeline tool for smaller teams, students, and classrooms

License:MIT License


Languages

Language:Python 95.8%Language:C 2.0%Language:Cython 1.4%Language:Jinja 0.7%Language:PowerShell 0.0%Language:Shell 0.0%Language:Emacs Lisp 0.0%Language:C++ 0.0%Language:Dockerfile 0.0%Language:Batchfile 0.0%Language:C# 0.0%