cadCAD Stakeholder Updates

A digest of cadCAD progress updates for Gitcoin Round 10

BlockScience
4 min readJun 30, 2021

The cadCAD community has been growing thanks to the dedication of maintainers, contributors, and new members on our Discord; the enthusiasm of partners like Token Engineering and The Commons Stack; and the continued generosity of backers like those participating in our Gitcoin grants. We have been pushing forward on multiple fronts and want to give the community-at-large an overview of our progress and upcoming changes. These exciting updates would not have been possible without your help and we can’t wait to continue building on these successes.

Nonprofit Incorporation

We are currently in the process of forming the open-source nonprofit, the cadCAD Foundation, to steward the growth of the community and cadCAD ecosystem. With the nonprofit in place, resources can begin to be deployed for organizing the community, administrating the treasury for cadCAD, and driving key initiatives for open-source development and ecosystem support. This milestone will expand our capacity and represents a significant inflection point in the cadCAD community.

For the process of incorporating the foundation, we aim to use an open-source template with the goal of making it the standard in open governance practices. More updates on our approach will follow as we move out of the feasibility research stage of using this templating solution.

cadCAD Bounties

With increased bandwidth to grow our community, we are able to focus on issuing bounties funded by Gitcoin grants. Internal testing of a bounty process revealed to us the necessary effort required in defining the work to be done in the bounty, the needs in reviewing the work, scaling the work and prerequisite skills to the bounty rewards, and administering the bounty rewards. We view bounties as a way to scale-up technical and non-technical contributions to the project and build ongoing relationships in the community. We will be combing through a short list of prospective bounties with the goal that when published, these may serve as an iteration to further tune the bounty processes.

Micro-spec for additional cadCAD implementations

As part of the effort to drive development of the cadCAD ecosystem, the cadCAD Core Tech Group (found in our Discord) has produced a cadCAD micro-specification. This micro-spec describes the qualifying criteria for implementations to meet the definitions of a cadCAD engine. We’ve already seen success with cadCAD.jl, a Julia implementation of cadCAD led by Emanuel Lima, that has been developed in reference to the micro-specification. We are pleased to find that the micro-spec provided enough guidance for engine development in compliance to cadCAD standards while maintaining the freedom for developers to use the full extent of the syntax of the chosen language.

cadCAD.jl is currently in private development and Emanuel reports:

The goal of this version is to decrease the simulation time of computationally expensive system models, and as a consequence, to lower the time to discovery of complex models. We used Julia’s powerful metaprogramming capabilities, expressive type system, and straightforward parallelization macros to build a high performance cadCAD engine with fewer lines of code than it would take on other compiled languages. This, in turn, leads to higher maintainability and easier onboarding of new contributors. As for future directions, our goal is to make the Julia engine execute Python system models, in order to provide acceleration to current cadCAD simulations.

We look forward to a proliferation of application-specific implementations like cadCAD.jl that empower our communities to build useful cadCAD models as part of their projects, workflows, and operations.

cadCAD will be releasing Beta and Production builds

cadCAD is improving the release process by first deploying a Beta build for testing before updates are pushed to production. Production represents the latest stable build and Beta is the release candidate undergoing testing. Our aim is to introduce more stability for models already built in the cadCAD ecosystem as we introduce fixes and updates. We also aim to increase the quality of each release with a wider scope of testing and broad participation.

As we mature towards this release process, we are seeking users to participate on this first iteration. If you are interested in participating in User Acceptance Testing (UAT) of the cadCAD Beta environment, please contact Chris Catoya (on Github or our Discord)

cadCAD Beta Updates

This version addresses some of the open cadCAD GitHub issues that will be resolved in the next production release.

  1. Parallelized cadCAD simulations run in series
    https://github.com/cadCAD-org/cadCAD/issues/242
  2. Validation test for result counts between what is specified by the API and expected results
    https://github.com/cadCAD-org/cadCAD/issues/248
  3. A/B testing the result count between releases
    https://github.com/cadCAD-org/cadCAD/issues/248
  4. Jupyter Server recognizes the cadCAD module
    https://github.com/cadCAD-org/cadCAD/issues/252
  5. ValueError no longer gives misleading error messages when catching a non-related ValueError
    https://github.com/cadCAD-org/cadCAD/issues/257

To Do: Update https://github.com/cadCAD-org/demos with changes to system models

--

--

BlockScience

BlockScience® is a complex systems engineering firm that combines research and engineering to design safe and resilient socio-technical systems.