We are doing some summer cleanup on the DynamoDS Github issues list. Over the next few weeks, you will see some shuffling around of the status of bugs and improvements, and we wanted to talk a little about why this happening.
Dynamo has seen amazing growth over the last few years. The technology has progressed in major milestone releases like 0.7 (first version based on DesignScript) and 1.0 (first stable API and the introduction of Dynamo Core and Autodesk Dynamo Studio). The community has grown rapidly as well. There are now Dynamo users in every major country, classes being taught at every industry conference and online, and user groups in many major cities. Dynamo is rapidly becoming the glue that holds mission-critical workflows together. We are even seeing it being used in industries farther afield from AEC. The community is strong and we are thrilled with the dedication and passion you bring to this work.
We are in the early stages of building Dynamo 2.0, which will have a new json base file format, some alterations and simplifications of Designscript, and other changes to make it easier to use as a component in multiple environments. One of the primary drivers for changes in Dynamo version 2 is creating a closer relationship with new technologies for distributed cloud computing and interconnected workflows between applications.
In the next few months, we hope to start putting out new builds of 2.0 and gathering early feedback on its stability, performance and other basic aspects of the emerging new code. While there will be some shiny new features, much of this work is refactoring. Initially most of this work will be in simplifying and making code that is more maintainable and creating migration paths from 1.x to 2.x. Initial releases of 2.0 will create a base for increasing our ability to add new tools in the future, similar to what our initial release of 1.0 achieved. In particular we will be looking for feedback about what workflows in 1.x have any problems migrating up to 2.x.
Along with all of this infrastructural work, we will be carefully reviewing all of the bugs, issues, and pull requests that have been submitted by you to determine whether or not they align with new technologies we will be using. You may notice that some of these reports will get closed despite not being fixed or improved. This does not mean that your ideas or efforts are not appreciated or relevant for our work (they are!). Generally we will be closing out issues that identify problems with whole technology stacks that we will be replacing. In some cases it will be smaller issues that we simply are admitting we don’t have the resources to address. Our goal with triaging the backlog is to minimize the noise in the system by featuring projects that we anticipate working on in the short term. All of the information will still be there, but the number of “open” issues should be reduced to reflect our focus.
So, how is our focus changing? In short, we are transitioning from PC-based technologies to ones that are compatible with both desktop and cloud. We see the next generation of Dynamo as being client- and platform-agnostic working to bridge the gap between all the different tools you use to get you from ideation to final deliverable product. Below outlines our priorities:
- Modernizing from desktop-based technologies like Helix 3D (Graphics) and WPF (User Interface framework) to focusing heavily on technologies that work in both desktop and web.
- Supporting interoperability with web based applications by updating the Dynamo file format from xml to json
- Deferring improvements and fixes to list management, geometry, and other core features until after the larger refactoring is complete. To remain committed to improving these tools, we need to do it on the right base.
- Consolidating DesignScript around the principles of providing simple, coherent, and capable programming tools. We will be reducing some of the more obscure and underutilized features that create maintenance and stability headaches.
- Creating a sleek component technology in Dynamo Core that can be deployed to multiple applications, and making a cleaner separation between Dynamo Core and Revit specific functionality. Dynamo for Revit will become more deeply integrated with Revit, and Dynamo Core will become more flexible
By focusing on these priorities, we seek to obsolete many specific problems in the current tools. For instance, instead of working on fixes to particular bugs in the behavior of imperative code in code blocks, we are working on larger technology projects that modernize the basic approach to imperative coding.
Dynamo Core and Dynamo for Revit are core technologies that are mission-critical to our AEC users. We will continue developing these core libraries as we embark on 2.0 and expanding Dynamo past the desktop. We also are interested in ways to grow the development contributions from the larger community; these are open-source projects and we encourage you to keep submitting to them. If you are interested in getting started developing, check out information in the Primer and on the Github Wiki. Also watch this space for further ‘Getting Started’ webcasts and in-person sessions. We appreciate all the feedback, suggestions, and ideas as they are helping drive this next generation of Dynamo. More information to come, and we hope to hear from you all on the various channels soon.
The Dynamo Team