-
Notifications
You must be signed in to change notification settings - Fork 460
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add new ocioview app (alpha) #1816
Add new ocioview app (alpha) #1816
Conversation
Signed-off-by: Michael Dolan <michdolan@gmail.com>
Oh exciting! |
Signed-off-by: Michael Dolan <michdolan@gmail.com>
…olorIO into feature/ocioview
Signed-off-by: Michael Dolan <michdolan@gmail.com>
Looks amazing @michdolan! I haven't looked at the code in details yet but had some issues running |
Signed-off-by: Michael Dolan <michdolan@gmail.com>
Signed-off-by: Michael Dolan <michdolan@gmail.com>
Made another push that adds persistent settings for tracking recent config and image locations, along with recent file menus. Transform subscriptions now have a suffix which indicates the item type, for clarity. I also updated the interface for working with transform directionality in the viewer, also to be more clear. I'm done making changes to this PR outside of addressing feedback. I've squashed most of the bugs I could find through manual testing. Additional work can happen in other PRs. |
Signed-off-by: Michael Dolan <michdolan@gmail.com>
@michdolan Did you think about how you want |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have not had time to review everything, but I haven't found anything to comment on in that regard (your code is always excellent Michael!). It seems like we should merge what you have here as a basis for further development.
The one thing that would be great to add would be some kind of readme to explain the current development status, what platforms it's been tested on, and what are the planned next steps. (You have some of this in the description in the PR, but people may not see that once it's merged.)
I tried to test this on macOS using Remi's branch. I just created a virtual env and then ran pip3 install -r requirements.txt. The UI launched and I was able to load a config and an image but some stuff seems broken. For example, the second of the drop-down menus seems locked to pass-through and I could not get it to load a display/view transform. Not sure if this is a problem with Remi's branch or something I'm doing wrong (probably the latter). We'll need to add some documentation for people.
How would you like to proceed with merging this @michdolan ?
I can address the readme/docs and versioning in a near-future PR. Once this is merged and @remia 's changes are merged, I have another PR in the works that improves a number of areas and adds a curve viewer. I can include the docs with that PR, if that's ok with you all. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I haven't reviewed the PR in details but I think it's fine to merge (code quality looks really good) and improve incrementally (as needed) as Michael suggests.
Signed-off-by: Michael Dolan <michdolan@gmail.com>
…olorIO into feature/ocioview
Signed-off-by: Michael Dolan <michdolan@gmail.com>
…olorIO into feature/ocioview
Signed-off-by: Michael Dolan <michdolan@gmail.com>
Signed-off-by: Michael Dolan <michdolan@gmail.com>
* Initial commit of ocioview Signed-off-by: Michael Dolan <michdolan@gmail.com> * Improve config version selection and reloading Signed-off-by: Michael Dolan <michdolan@gmail.com> * Bug fixes and improved warnings Signed-off-by: Michael Dolan <michdolan@gmail.com> * Improve async log and code routing Signed-off-by: Michael Dolan <michdolan@gmail.com> * Add settings, improve transform interface Signed-off-by: Michael Dolan <michdolan@gmail.com> * Fix viewer and code view update bugs Signed-off-by: Michael Dolan <michdolan@gmail.com> * Add README and inspector panel with curve viewer Signed-off-by: Michael Dolan <michdolan@gmail.com> * Curve viewer log fix Signed-off-by: Michael Dolan <michdolan@gmail.com> * Add curve view labels Signed-off-by: Michael Dolan <michdolan@gmail.com> * Update README, improve curve grid rendering Signed-off-by: Michael Dolan <michdolan@gmail.com> --------- Signed-off-by: Michael Dolan <michdolan@gmail.com> Co-authored-by: Rémi Achard <remiachard@gmail.com> Signed-off-by: Brooke <beg9562@rit.edu>
* Initial commit of ocioview Signed-off-by: Michael Dolan <michdolan@gmail.com> * Improve config version selection and reloading Signed-off-by: Michael Dolan <michdolan@gmail.com> * Bug fixes and improved warnings Signed-off-by: Michael Dolan <michdolan@gmail.com> * Improve async log and code routing Signed-off-by: Michael Dolan <michdolan@gmail.com> * Add settings, improve transform interface Signed-off-by: Michael Dolan <michdolan@gmail.com> * Fix viewer and code view update bugs Signed-off-by: Michael Dolan <michdolan@gmail.com> * Add README and inspector panel with curve viewer Signed-off-by: Michael Dolan <michdolan@gmail.com> * Curve viewer log fix Signed-off-by: Michael Dolan <michdolan@gmail.com> * Add curve view labels Signed-off-by: Michael Dolan <michdolan@gmail.com> * Update README, improve curve grid rendering Signed-off-by: Michael Dolan <michdolan@gmail.com> --------- Signed-off-by: Michael Dolan <michdolan@gmail.com> Co-authored-by: Rémi Achard <remiachard@gmail.com> Signed-off-by: Doug Walker <Doug.Walker@autodesk.com>
ocioview
is a visual editor for OCIO configs, written in Python. The app currently consists of two main components; a viewer and a config editor. The viewer is an expanded version ofpyociodisplay
with pan/zoom and pixel sampling support. Multiple viewers can be loaded in different tabs. The config editor is a tabbed model/view interface for the current config. Models for each config item type interface directly with the config in memory. The app's scene file is a config. This design allows dynamic interconnectivity between config items, reducing risk of errors during config authoring. Undo/redo stack support for most features is implemented.These two components are linked with 10 possible transform subscriptions. Each subscription tracks the transform(s) for one config item, and each viewer can subscribe to any of these transforms. This provides fast visual feedback for transform editing. There is also a code view linked to the active viewer, which displays a CTF and GLSL representation of the viewer's processor, as well as the current config YAML.
This PR accounts for the core functionality needed for authoring a config, but there is still much more that could be done. I will continue working on
ocioview
, but want to invite others to contribute as well. There is plenty to refine and add, and this project is a great opportunity to improve the accessibility and interactivity of OCIO config authoring.In terms of reviewing the code; it's a lot. There's ~15k lines of code here. There are bugs that still need to be squashed, which I am continuing to work on, but the best way to review is probably to try it out. Once the initial version is merged, we can iterate on smaller subsets of the application. Thanks for taking a look!
Some caveats:
ocioview
depends on the OIIO and imath Python bindings, which are not currently available on PyPI. I intend to contribute a Python script to make building the dependencies simpler, but for now users will need to provide their own builds.Screenshots: