The most comprehensive collection of intermediate level cadCAD methodologies on the web. If you're using cadCAD professionally, this is where you pick up the latest tips&tricks.
See https://www.cadcad.education/course/cadcad-hacks
Contents
Season 1
Hack | Description | Link |
---|---|---|
The Graph | How to access blockchain data through The Graph from within cadCAD simulations | cadcad-hack-1-the-graph.ipynb |
Predator-Prey Sandbox Model | How to use the Predator-Prey “Sandbox” Model | cadcad-hack-2-predator-prey-sandbox-model.ipynb |
Plotly Animations | How to create beautifully interactive cadCAD models using Plotly animations | cadcad-hack-3-plotly-animations.ipynb |
Ethereum ETL | How to access Ethereum Smart Contract data through BigQuery and Ethereum-ETL inside cadCAD simulations | cadcad-hack-4-ethereum-etl.ipynb |
Metadata | How to use metadata on cadCAD Partial State Update Blocks | cadcad-hack-5-metadata.ipynb |
Visualization Sliders | How to create beautifully interactive cadCAD models using visualization sliders | cadcad-hack-6-visualization-sliders.ipynb |
Live API Data | How to pull historical and live API data into cadCAD | cadcad-hack-7-live-api-data.ipynb |
Sensitivity Analysis | How to perform machine learning supported sensitivity analysis on cadCAD simulations | cadcad-hack-8-sensitivity-analysis.ipynb |
Exporting Notebooks | How to generate PDFs and web pages from cadCAD notebooks | cadcad-hack-9-exporting-notebooks/ |
Generating Stochastic Processes | How to generate stochastic processes as part of a cadCAD model | cadcad-hack-10-generating-stochastic-processes.ipynb |
NetworkX | How to use NetworkX for creating Agent-Based Models (ABM) in cadCAD | cadcad-hack-11-networkx.ipynb |
History Erasing | How to avoid cadCAD memory overflows through history erasing | cadcad-hack-12-history-erasing.ipynb |
Visualizing Large-Scale Parameter Sweeps | How to plot simulations involving many parameter sweeps | cadcad-hack-13-visualizing-large-scale-parameter-sweeps.ipynb |
Season 2
Hack | Description | Link |
---|---|---|
Testing Framework | How to use a testing framework for cadCAD | cadcad-hack-15-testing-framework/ |
Getting Started With radCAD | How to migrate a cadCAD model to radCAD | cadcad-hack-16-radcad/ |
Using Pandas Queries | How to use Pandas queries to navigate through cadCAD simulations | cadcad-hack-17-pandas-queries.ipynb |
Numba | How to use Numba to improve the performance of cadCAD simulations | cadcad-hack-18-numba.ipynb |
Command Line Interfaces | How to create command line interfaces for a cadCAD model | cadcad-hack-19-cli/ |
NetworkX Visualizations | How to visualize complex networks using NetworkX | cadcad-hack-20-networkx-viz.ipynb |
Debugging Performance Issues | How debug cadCAD performance issues | cadcad-hack-21-profiling-models.ipynb |
Logs for debugging | How to generate cadCAD logs for debugging | cadcad-hack-22-logging.ipynb |
Pickle | How to serialize and deserialize Python objects with Pickle | cadcad-hack-23-pickle/ |
cadCAD Front-ends | How to create cadCAD web front-ends with Dash | cadcad-hack-24-cadcad-frontends/ |
Environment Setup
For a comprehensive setup tutorial using Anaconda see cadCAD Complete Foundations Bootcamp - Section 2: Environment Setup.
1. Get the Hacks
Clone or download the cadCAD Hacks GitHub repo:
Clone
git clone git@github.com:cadCAD-edu/cadCAD-Hacks.git
Download https://github.com/cadCAD-edu/cadCAD-Hacks/archive/refs/heads/main.zip
2. Install Python Dependencies
Create a Python 3 virtual environment inside the Hacks folder:
cd ./cadCAD-Hacks/
python3 -m venv venv
Activate your virtual environment (operating system dependent, works on macOS/Unix OS):
source venv/bin/activate
Install the Python dependencies from requirements.txt file:
python3 -m pip install -r requirements.txt
3. Create IPython Kernel
Within your virtual environment, create a new IPython kernel called python-cadcad-hacks
, which you will select and use in Jupyter:
python3 -m ipykernel install --user --name python-cadcad-hacks --display-name "Python (cadCAD Hacks)"
4. Start Jupyter
We recommend using Jupyter Notebook or Jupyter Lab, but you should be able to use any Jupyter notebook viewing software of your choice.
Jupyter Notebook
Start your Jupyter Notebook environment using the CLI:
jupyter notebook
Or start Jupyter Notebook using another method of your choice.
Jupyter Lab
Jupyter Lab requires a few additional steps to install Plotly:
jupyter labextension install jupyterlab-plotly@4.14.3
See https://plotly.com/python/getting-started/ for more details.
Contributions
We gladly accept contributions of bug fixes!
- Create an issue or a PR
- Describe the issue or bug fix, including all relevant context
- Add your name to the
CONTRIBUTORS.md
document along with relevant commits
License
Mozilla Public License 2.0
See LICENSE