I’ve just finished doing the excellent cadCAD Masterclass from cadCAD Edu and I’ve felt like sharing some insights about my experience and the field of systems engineering / complex systems.

In the first place, cadCAD is an open-source Python library that was created as an internal tool at BlockScience. This library helps to design models and simulate their behavior. cadCAD was first developed in 2016 (original name was SimCAD) as proprietary software at BlockScience to design complex systems in a faster way. Recently, in 2019, it was open-sourced to fill a critical gap in open-source data science. The fact that it is open-source allows an easy and efficient integration with other Python libraries, making it a very powerful tool.

Joran Honig (security auditor at Diligence) wrote an incredible introductory article about cadCAD that I recommend anyone to read.

BlockScience is an engineering and R&D firm specialized in complex systems design and validation. You can find some nice resources about them here and some great tutorials here and here. BlockScience defines and practices the emerging field of Economic Systems Engineering by applying mathematical engineering technologies associated with time-tested Systems Engineering practices. They also integrate Game Theory and Behavioral Economics, which contributes to the creation of healthy sustainable ecosystems. This looks like the perfect set-up for cryptoeconomics!

As I’ve recently shared, the study of complex systems is a topic that is very dear to me and, therefore, going through this cadCAD learning journey was an outstanding experience – in the next section I will give you more details about why I enjoyed it so much, as well as some of the things that I’ve learnt.

On cadCAD
  • In a world where web3 is gaining more and more popularity, having an open-source package that allows the user to analyze, design and validate complex systems gives you a considerable amount of leverage – cadCAD definitely helps anyone to make better system decisions in order to achieve the project goals;

  • The cadCAD library follows an EDP (“Engineering Design Process”) approach. If you are already an engineer/software developer, you are probably familiar with these steps. During the “System Design” phase, you’ll learn in detail about the SNL (“Standard Notebook Layout”) that provides step-by-step guidance on how to model and simulate a system;


edp

  • To validate and simulate your results, you will learn some more advanced techniques, including the Monte Carlo Method, Parameter Sweeps and A/B Testing;

  • cadCAD modeling and simulation allows you to take a new approach to real-world systems engineering;

  • If you enroll on the cadCAD Hacks available at cadCAD Edu, you will have the opportunity to explore real-life protocols (e.g. The Graph) and pick up the latest tips and tricks. Some other relevant demos can be seen here. It’s very hands-on and gives you enough room for experimentation, which is the perfect scenario for cryptocurrencies and related protocols! Also, the visual graphs always look very beautiful (e.g. tell me this ETH Supply Simulator isn’t beautiful?).

On radCAD
  • During the Masterclass course, we are introduced to a brand-new concept: radCAD. radCAD extends on cadCAD, and it is a “Python framework for modeling and simulating dynamical systems”. It was built for modularity and extensibility and works pretty well. For example, the SNL previously mentioned turns into SPS (“Standard Project Structure”), which improves overall performance;

  • radCAD is compatible with cadCAD by just installing a few dependencies;

  • The Masterclass course dives deep into Modeling Ethereum Validator Economics. So, if you are passionate about Ethereum research or if you are just a validator/investor, there’s a good chance you will learn something new and test different case scenarios. The course provides a lot of quality material (both in video and in text format). And the Masterclass was supported by the Ethereum Foundation, which is always a nice thing;

  • Moreover, the combination of getting immersed in a real-world dynamical system with the fascinating world of the Ethereum protocol makes it a great learning experience in the world of cryptoeconomics;

  • This framework is becoming increasingly more popular, and some of its use cases include the Ethereum Economic Model by CADLabs, the Beacon Runner by the Ethereum RIG and the GEB Controller Simulations by the Reflexer Protocol. In the near future, I expect to see more and more projects using cadCAD/radCAD.

If you felt confused, here’s a one-stop document for learning about cadCAD and how to use it. Joining the official Discord and asking questions also seems like a good option!

Final Thoughts

As you’ve probably noticed, I strongly recommend taking the Masterclass course by cadCAD Edu. The video lectures have extremely high quality (content-wise) and the courses always provide external links and reading lists for you to complement your learning process. Also, the course instructors (e.g. Ben Scholtz) are some of the best instructors you will find anywhere. I am not the only one sharing this opinion (see here, here and here) - I would trust these guys :)

These courses are designed for multidisciplinary people, including software engineers, systems engineers, data scientists and dynamical systems enthusiasts! To complete the Masterclass, you’ll need some intermediate knowledge of Python and some knowledge regarding Ethereum 2.0 (i.e. EIP-1559, The Merge, Proof-of-Stake, etc). The more multidisciplinary you become, the better your chances are of succeeding in web3 lands (aka “the metaverse”). Also, OSS is essential to the Ethereum community and by completing these courses you will become much closer of getting a web3 job (or, at least, get a new perspective on systems/token engineering). The cadCAD/radCAD space is only just getting started (it’s currently ~ 2 years old), and it is definitely super exciting.

I believe that the integration of dynamical systems theory (using tools such as cadCAD/radCAD) with mechanism design and zero-knowledge technology will be a very powerful combination that will result in some of the best projects that the web3 space has to offer - the intersection of all these fields will allows us to optimize a new complex/dynamic system.


Note: I am not affiliated with CADLabs or BlockScience