Blog Post: This week, the RoCo Team focused on how to integrate RoCo and the Blender Interface. Since Blender allows customization of its interface, changing the Blender interface to Roco's mechanical, electrical, and interfaces does not seem to be an issue. A natural question that follows is to connect both RoCo and Blender. Thankfully, Blender provides a rich set of API function calls that allow users to perform operations that would normally be done in the user interface, in Python code. Thus, the goal for next week is to translate operations in Blender to parameter constraints into RoCo. Going forward, we would like to stick to some principles for purposes of generalization and future development:
1. User Interface and backend should be completely isolated. While Blender provides
a powerful set of functionalities, we DO NOT want to make RoCo dependent on Blender in any way.
2. The data that is used by RoCo backend and Blender should be the same data. This is to
keep the view and the backend consistent. Changes should only be made by RoCo backend and
Blender calls API calls to request for these changes.
3. Operations in RoCo and Blender have to be in sync. That means every operation in Blender
has to translate to operation in RoCo. Currently, there are functions that are possible in
Blender but does not in RoCo, such as the redo, copy operations.
4. RoCo features hierarchical composition, parameterization, and codesign. We want to
perserve these important design principles and ensure that these principles are adhered
to while playing with Blender's powerful API.
I think it is important that we stick with these principles. For the coming weeks, the RoCo team's plan is to first integrate with Blender's interface and fix/re-architect some of the issues concerning the current abstraction model of RoCo.