Justin Tennant

usd-idea

usd-idea

A plugin for JetBrains IDEs (PyCharm, IntelliJ, etc) that provides support for Universal Scene Description (USD).

JetBrains IntelliJ Plugins JetBrains IntelliJ plugins

Install (via JetBrains Marketplace)GitHub

A plugin for JetBrains IDEs (PyCharm, IntelliJ, CLion, etc) that provides support for Universal Scene Description (USD), a framework for interchange of 3D computer graphics data, developed by Pixar Animation Studios.

Released under the MIT License.

Feature set

  • .usd/.usda filetype syntax highlighting & validation
  • Asset/prim reference navigation (with usdresolve)
  • Brace matching & block folding
  • Structure/outline views

Future aspirations

JetBrains has an incredibly powerful Program Structure Interface (PSI) within their editors that represent the code’s syntactic and semantic models, and powers their intellisense features and autocompletion.

Pixar’s USD has an equally powerful layer composition system which can represent 3D scenes as being composed from many elemental assets.

By fully utilizing the JetBrains PSI to model USD’s layer composition system, usd-idea could evolve into a substantially effective USD file editor, inspector, and debugger.

Listed below are noteworthy features I’m interested in adding into the plugin:

  • Crate/package (.usdc/.usdz) file support

    File viewing/editing of USD crate (.usdc) and package (.usdz) file support.

    Crate file support has been a long-time desire1 and unfortunately, a pain in the butt to implement within the IntelliJ SDK. I’ve made some promising advancements in recent tests (as of September 21, 2021) and will hopefully have a partially working form of this in the near future.

  • USD Python API autocompletion

    Autocompletion for USD’s Python bindings (e.g.: pxr.Usd, pxr.Sdf, etc).

    Some attempts towards this have been tried by others using Python-stub based methods2, but unfortunately no USD stubs have ever been publicly released, officially or non-officially.

    Depending on how robust PyCharm’s SDK is, I may end up attempting a similar approach to usdstubgen by inspecting the Python packages & modules in a runtime context within the plugin and serving the autocomplete results back to the IDE.

  • usdchecker file linting

    File inspections provided by usdchecker’s rules and metrics.

  • Prim/property navigation

    Navigation of declarations, overs, and usage of prims/properties.

    Would be excellent to have value inspections too.

  • Inline documentation

    USD documentation (Doxygen and/or graphics.pixar.com) directly viewable from object inspecting & mouseovers.

  • Layer stack/composition explorer

    It would be nice to explore the layer stacks in some sort of tree view, similar to usdview’s Composition Explorer.

  • Hydra renderer viewport

    Interactive viewport within the IDE, with live updating as files are edited.

    Perhaps with JNA; more research & investigations needed.

If any of these features pique your interest, or if you have ideas of your own, please reach out and let me know! I’d love to hear how you might imagine using an IDE with USD, or have ideas how to build it.

1

https://github.com/justint/usd-idea/issues/7: Add support for binary USD files

2

usdstubgen by Chad Dombrova