https://github.com/healkeiser/fxhoucachemanager
Cache manager for Houdini.
https://github.com/healkeiser/fxhoucachemanager
3d cgi houdini pipeline qt vfx vfx-pipeline
Last synced: 6 months ago
JSON representation
Cache manager for Houdini.
- Host: GitHub
- URL: https://github.com/healkeiser/fxhoucachemanager
- Owner: healkeiser
- License: mit
- Created: 2024-12-01T14:43:53.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-12-02T11:48:32.000Z (10 months ago)
- Last Synced: 2025-03-25T18:48:05.353Z (6 months ago)
- Topics: 3d, cgi, houdini, pipeline, qt, vfx, vfx-pipeline
- Language: Python
- Homepage:
- Size: 538 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README


fxhoucachemanager
Cache manager for Houdini.
##
## Table of Contents
* [Installation](#installation)
* [How-to Use](#how-to-use)
* [Settings](#settings)
* [Advanced](#advanced)
* [Contact](#contact)## Installation
To install, simply copy-paste the [package.json](houdini/packages/fxhoucachemanager.json) file inside your `$HOUDINI_USER_PREF_DIR/packages` folder, and replace the value of the `$FXHOUCACHEMANAGER` path depending on your OS.
## How-to Use
You can launch the **FX Cache Manager** through the **FX** menu, or the **FX Cache Manager** shelf tool inside the **FX** shelf.
You will be presented with this UI:
![]()
The tool will scan for caches in the root folder you've set in the [settings](#settings).
> [!IMPORTANT]
> The caches should be following this format `///`. For example:
> - `$HIP/geo/flip/v001/flip_v001.bgeo.sc` where `$HIP/geo` is the root folder, `flip` is the cache name, `v001` is the cache version, and `flip.bgeo.sc` is the cache file.
> - `$JOB/geo/flip/17/myBeautifulFlip.bgeo.sc` where `$JOB/geo` is the root folder, `flip` is the cache name, `17` is the cache version, and `myBeautifulFlip.bgeo.sc` is the cache file.In the case where the scene has a huge number of caches, you might notice a progress bar at the bottom of the UI. This is to indicate the progress of the cache scanning. The progress bar will disappear once the scanning is done.
![]()
You can filter the caches by name, but also by extensions using the buttons on the bottom right of the UI.
![]()
You can use the dropdown menu to select the version you want to load. It will immediately load the cache in the scene.
![]()
![]()
You can expand the parent item to see all the versions available for a cache. The parent item will display the version currently loaded in the scene, and the children items will display the other versions available. The highest found version will be displayed in 🟩 green, outdated versions will be displayed in 🟨 yellow.
If a path is referenced but not found on disk, the version will be displayed in 🟥 red. If the file exists on disk but doesn't follow the expected format, the version will be displayed in 🟦 grey-blue.
![]()
A right-click on a selection of caches will open a context menu allowing you to perform a variety of actions:
![]()
When selecting **Update All to Latest** or **Delete Unused Caches**, a confirmation dialog will appear, asking you to confirm the action.
![]()
![]()
## Settings
You can modify the settings of the tool by clicking on the **Edit** > **Settings** button, in the menu bar.
A dialog will appear, allowing you to set the regex pattern [1](#footnote1) to use for the version extraction, the Houdini environment variable to use to replace in the paths [2](#footnote2), and the root folder to scan for caches [2](#footnote3).
![]()
> [!TIP]
> 1 The default regex pattern is `v\d{3}`, which will match any version number with 3 digits, e.g. `v001`.
> Some other patterns you might want to use:
> - `v\d+` will match any version number with at least 1 digit, e.g. `v1`, `v78`, `v999`, etc.
> - `^\d{3}$` will match any version number with exactly 3 digits, e.g. `001`, `078`, `999`, etc.
> - `^\d+$` will match any version number with at least 1 digit, e.g. `1`, `78`, `999`, etc.> [!NOTE]
> 2 As described in the [fileReferences](https://www.sidefx.com/docs/houdini/hom/hou/fileReferences.html) documentation:
> > You can specify the name of an environment variable. If an asset path starts with the variable, it will be replaced with a variable reference in the path string returned by this function. For example, if `$JOB` is `/mnt/projects/` and an asset is in `/mnt/projects/tool.hda`, if you call `hou.fileReferences("JOB")`, it will return the path as `$JOB/tool.hda`.> [!NOTE]
> 3 Any environment variable will be expanded. E.g. `$HIP` will be replaced by the current Houdini scene path, `$JOB` will be replaced by the current Houdini job path, etc.You can also set the logger verbosity level in the **Edit** > **Log Level** menu.
## Advanced
The log and configuration files are stored in the `%APPDATA%/fxhoucachemanager` folder on Windows, and in the `$HOME/.fxhoucachemanager` folder on Linux and macOS.
> [!WARNING]
> One log file is saved per day, so you might want to clean up the folder from time to time.## Contact
Project Link: [fxhoucachemanager](https://github.com/healkeiser/fxhoucachemanager)