usdtweak is a free and open source editor for OpenUSD. usdtweak can already be used for small and simple tasks like cleaning or preparing assets, creating and editing layers, inspecting and fixing usd stages. It works on windows, macos and linux.
This project is written in C++ and is powered by ImGUI for the UI and GLFW for the windowing system.
usdtweak-ui-27e06445bd2675cc5b848c5e0c0179e7.mp4
usdtweak has been actively developed since 2020. It started as an idea to bring editing to usdview, for artists, technical directors and anyone who doesn't know the OpenUSD ascii syntax or Python. Today it is a full editor for stages and layers, and the goal driving development is to match usdview's functionality while making everything editable.
Development is independent and community-driven. Feedback, bug reports and contributions directly shape the roadmap.
As of today usdtweak allows
Stage & layer search and editing: search, browse and edit multiple stages and layers in the same application, copy and paste specs between layers, edit layer hierarchy (adding, deleting, reparenting, and renaming specs), and manage the stage layer stack (adding and deleting sublayers).
Composition & variants: create and delete compositions like references, payloads, and inherits, and create and edit variants at the layer level.
Properties & animation: edit stage properties in an edit target context, change property values in layers and stages, and add and delete keys on properties.
Materials & viewport: assign materials on a prim and interact with the viewport (translating, rotating, scaling objects).
Text editing: edit any layer with a text editor, navigate layers like a web browser.
AI agent: usdtweak includes Twiki, an experimental natural-language agent built into the editor. Ask it to find problems in a scene ("which prims have no material bound?") or perform bulk modifications ("set all lights' intensity to 2 under /World/Set"), it will help you inspect and modify the scene more rapidly without knowing the USD specifics. Twiki is the start of agentic 3D editing in usdtweak. See Twiki.md for details.
Alpha features:
- Connection editor - visualize and edit connection graphs, useful for shader/materials graphs.
If you want to try usdtweak without the burden of compiling it, you can download the latest installer here https://github.com/cpichard/usdtweak/releases. Feel free to reach out if you have any issue with it (or success).
usdtweak is used by people who need to inspect and edit USD without a commercial platform:
- VFX studios build it against their DCC's USD (for example Houdini's) so it fits straight into their pipeline and reduce licenses use for simple tasks like reviewing.
- Students and educators use it as a free, visual way to learn how stages, layers and composition work.
- AI and robotics researchers use it to review and edit the USD scenes and assets used for simulation.
Using usdtweak in your work, lab or course? Tell us on Discord or by email. We'd love to hear about it.
If you're on windows, you can use windows-build.ps1 powershell script to build usdtweak. It will download the OpenUSD pre-build binaries from NVIDIA and compile usdtweak for you, granted you have the required tools installed (Cmake, Visual Studio 2022 build tools).
Keep in mind nvidiaOpenUSDbinaries are under NVIDIA OMNIVERSE LICENSING, make sure you're aware of the terms and conditions before using them.
After running the build script, you can run windows-start.bat to start usdtweak.
If you prefer to compile usdtweak manually, you can follow the instructions in the Building.md file:
The documentation now lives in the growing wiki, it mainly contains informations on how to use usdtweak.
With the recent rise of the coding assistants, researchers, technical artists, and artists can build dedicated tools and interfaces without knowledge of coding language. usdtweak now allows you to easily write C++ addons for your specific needs, using the main application as a foundation. addons are similar to plugins, but maintained by you and without the burden of managing dynamic libraries, you build the application with your tools.
This project welcomes any contributions: features ideas, bug fixes, documentation, tutorials, etc. If you want to contribute just reach out by mail.
For code contribution you can make a pull request from your fork. If you don't know how to fork and create pull requests, this video explains the process.
- When enabling the scene materials in Storm, the texture don't always load correctly. This can be solved by setting the USDIMAGINGGL_ENGINE_ENABLE_SCENE_INDEX environment variable to 1.
If you want to know more, or have any issues, questions, drop me an email: cpichard.github@gmail.com or fill a github issue.
Big thanks all the humans who contributed to this project, making it better months after months. Special thanks to @oumad, @AlexRamallo for the discussions, design ideas, docs, videos, and much more and @ChubbyQuark for the big push on the wiki which has become really helpful.