/cadCAD-Hacks

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.

Primary LanguageJupyter NotebookMozilla Public License 2.0MPL-2.0

cadCAD Hacks

Python workflow

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!

  1. Create an issue or a PR
  2. Describe the issue or bug fix, including all relevant context
  3. Add your name to the CONTRIBUTORS.md document along with relevant commits

License

Mozilla Public License 2.0

See LICENSE