├── 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 useWide variety of calculations | Difficult to see relationships between numbersDifficult to maintainNumerical precision | Very simple systems | |
10 | | Python scripts | General programming language | Interpreted language allows simple development with read-eval-print loopsSeveral libraries for advanced numerical analysis and modelinggood 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 loopsSeveral libraries for advanced numerical analysis and modelingGood numerical precisionGreat parallel processing | May be challenging for people new to programming to build modelsJulia 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 structureFree to use | Works best with a small number of system elements and relationshipsAnimations can be confusingExporting 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 metricsSupport for simple calculations and feedback loops | Assumes all variables, relationships, and behaviors can be definedMay have some precision lossSubscription 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 sophisticationAbility to add external frameworks to modelsOpen source | Can be difficult for people new to modeling and more difficult for people new to programmingPotential 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 EthereumDirect 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 languageIntegration with other tools or packages can be cumbersomeLicense 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 modelingGraphing libraries | Cumbersome package management systemSyntax is challenging | Suitable for any type of statistical analysis | |
20 | | AnyLogic | Agent-based modeling tool | Implementation of agent-based models in JavaHigh scalabilityFront-end visualization tools | All systems must be expressed as agent-based modelsLicense 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 systemGUI components and the ability to automatically extract insights about agents | Not in a popular languageTied 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 smoothLarge library of pre defined shapesDecent curve to point mapping | Proprietary, not editable unless the other person has signed upProfessional version requires license | Suitable for diagraming, Casual Loop Diagrams and Stock and Flow diagrams | |
24 | | DrawIO | Diagramming Tool | Links to different sources for storageFree and open sourceDecent collection of shapesEasy to share diagrams | Curve drawing is not the bestIt 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 engineeringA little cumbersome out of the box | Suitable for diagramming system flows | |
26 | | MermaidJS | Diagramming Tool | Code first diagramming toolPortable and extensibleOpen sourceEasy to write pluginsEasy to embed in websitesReusable diagramming | It’s unknown how this translates to token engineering--- could be cumbersome | Suitable for diagramming system flows | |
27 |
--------------------------------------------------------------------------------