├── LICENSE └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 TokenEngineeringCommunity 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Resources for learning systems modeling with tokens 2 |

3 | # Summary of Tools 4 | Originated with cadcad study group. Examples can be linked to the table. 5 | 6 | 7 | | Tool | Design Purpose | Strengths | Weaknesses | Suitability for modeling dynamic systems | Examples | 8 | | --- | --- | --- | --- | --- | --- | 9 | | Spreadsheets | Tables of numbers and calculations |
  • Easy to use
  • Wide variety of calculations
  • |
  • Difficult to see relationships between numbers
  • Difficult to maintain
  • Numerical precision
  • | Very simple systems | | 10 | | Python scripts | General programming language |
  • Interpreted language allows simple development with read-eval-print loops
  • Several libraries for advanced numerical analysis and modeling
  • good numerical precision | May be challenging for people new to programming to build models | Simple to complex systems, depending on the software development skills | | 11 | | Julia-lang scripts | General programming language |
  • Interpreted language allows simple development with read-eval-print loops
  • Several libraries for advanced numerical analysis and modeling
  • Good numerical precision
  • Great parallel processing |
  • May be challenging for people new to programming to build models
  • Julia lang is a newer programming language with fewer off the shelf tools
  • | Simple to complex systems, depending on the software development skills | | 12 | | Loopy | Visual app for creating and animating causal loop diagrams |
  • Easy to create simple relationships using a well-defined diagramming structure
  • Free to use
  • |
  • Works best with a small number of system elements and relationships
  • Animations can be confusing
  • Exporting isn’t great, needs to be recorded
  • | Best for simple, closed-loop systems | | 13 | | Machinations | Visual app for designing game economies through graphical representation |
  • Graphical, interactive design environment that also runs simulation models and collects metrics
  • Support for simple calculations and feedback loops
  • |
  • Assumes all variables, relationships, and behaviors can be defined
  • May have some precision loss
  • Subscription required
  • | Best for closed-loop systems | | 14 | | cadCAD | Python library for modeling complex adaptive systems |
  • Model orchestration framework supports adaptive models at various levels of sophistication
  • Ability to add external frameworks to models
  • Open source | Can be difficult for people new to modeling and more difficult for people new to programming
  • Potential challenges with scaling simulations
  • | Suitable for models of various levels of complexity | | 15 | | radCAD | A cadCAD derivative with a simpler API | Same as cadCAD | Same as cadCAD | Same as cadCAD | | 16 | | tokenSPICE | EVM Agent-Based Token Simulator |
  • Python library for simulating token dynamics directly in Ethereum
  • Direct tie to Solidity contract code reduces chance of errors in translating simulation to real network
  • | Specific to EVM— other blockchain environments would require adding new capabilities | Models of EVM ecosystems | | 17 | | Matlab | A general purpose mathematical modeling environment | Sophisticated toolkit with add-on packages for specific application domains |
  • Proprietary language
  • Integration with other tools or packages can be cumbersome
  • License required
  • | Suitable for models of various levels of complexity | | 18 | | Octave | Open source alternative to Matlab, supports many .m files without modification | Same as Matlab | Same as Matlab, without licensing requirement it’s free. | Suitable for models of various levels of complexity | | 19 | | R | R is a free software environment for statistical computing and graphics. |
  • Lots of packages for performing statistical modeling
  • Graphing libraries
  • |
  • Cumbersome package management system
  • Syntax is challenging
  • | Suitable for any type of statistical analysis | | 20 | | AnyLogic | Agent-based modeling tool |
  • Implementation of agent-based models in Java
  • High scalability
  • Front-end visualization tools
  • |
  • All systems must be expressed as agent-based models
  • License required
  • | Suitable for systems that map naturally to agent-based models | | 21 | | Mesa | Agent-based modeling tool | Python implementation simple modular framework with visualization frontend baked in | It can be tricky to organize your first project, and there aren’t type hints making it easy to mismatch dimensions | Suitable for systems that map to agent based models | | 22 | | NetLogo | Agent-based modeling tool |
  • Uses a simple language to allow you to understand a system
  • GUI components and the ability to automatically extract insights about agents
  • |
  • Not in a popular language
  • Tied to an IDE--- Hard to run or write without using the IDE
  • | Suitable for systems that map to agent based models | | 23 | | LucidChart | Diagramming Tool |
  • It’s pretty smooth
  • Large library of pre defined shapes
  • Decent curve to point mapping
  • |
  • Proprietary, not editable unless the other person has signed up
  • Professional version requires license
  • | Suitable for diagraming, Casual Loop Diagrams and Stock and Flow diagrams | | 24 | | DrawIO | Diagramming Tool |
  • Links to different sources for storage
  • Free and open source
  • Decent collection of shapes
  • Easy to share diagrams
  • |
  • Curve drawing is not the best
  • It could have a few more pre defined shapes
  • | Suitable for diagraming, Casual Loop Diagrams and Stock and Flow diagrams | | 25 | | PlantUML | Diagramming Tool | Makes it easy to write code to diagram things |
  • Not very easy to translate this to token engineering
  • A little cumbersome out of the box
  • | Suitable for diagramming system flows | | 26 | | MermaidJS | Diagramming Tool |
  • Code first diagramming tool
  • Portable and extensible
  • Open source
  • Easy to write plugins
  • Easy to embed in websites
  • Reusable diagramming
  • | It’s unknown how this translates to token engineering--- could be cumbersome | Suitable for diagramming system flows | | 27 | --------------------------------------------------------------------------------