Skip to the content.

Notes on Scientific Computing for Biomechanics and Motor Control

Interactive guides by Marcos Duarte and Renato Naville Watanabe, Laboratory of Biomechanics and Motor Control, UFABC.

The notebooks in this repository use marimo. Each guide combines explanations, executable examples, checkpoint questions, worked exercises, and independent problems with expandable final answers. Python introductions cover basic concepts directly in marimo.

DOI

Open a guide

Click a guide title to open its static HTML page, with saved text, tables and plots. You can also browse all guides.

Each page’s header offers five choices:

In the browser editor, click Run all to compute results, then edit and rerun cells to experiment. It downloads the Python runtime, packages and linked data over the Internet. Browser edits do not update this repository; download the Python file to keep your own copy.

The Python sources can also be downloaded and opened locally. GitHub Actions automatically discovers the notebooks, rebuilds the site and publishes saved and editable versions on every push to master.

For local use, install uv, clone the repository, and run these commands from its root:

uv sync
uv run marimo edit notebooks/reference_frame.py

The repository environment uses Python 3.14 or newer. Each notebook also declares its own dependencies for standalone use. There is no need to install or import pyodide in a notebook.

Examples use bundled data when the repository is available. Standalone notebooks download the same public assets into a temporary cache when needed. Keep an Internet connection for those assets and external media; file-format and analysis errors remain visible.

To refresh the saved pages after editing a notebook, use the export/update script. Static snapshots keep their saved results; their display assets and external media still require an Internet connection.

Introduction

Scientific programming

Numerical data analysis

Mechanics

Kinematics

Kinetics

Modeling and simulation of human movement

Biomechanical tasks analysis

Electromyography

Verification and maintenance

uv run pytest -q
uv run marimo check --strict notebooks/*.py

To execute one notebook headlessly, use uv run marimo export html notebooks/reference_frame.py -o /tmp/ReferenceFrame.html. Running a notebook as python notebook.py opens its application; it does not verify all cell bodies.

The common repository-file resolver is imported from functions/notebook_resources.py. Marimo’s source search path is configured in pyproject.toml; changes to the helper apply to every notebook that imports it.

If you download a notebook on its own and it reports that notebook_resources.py is missing, use Download helper on its saved page, or download the helper directly. Save it in the same folder as the notebook, keeping the filename notebook_resources.py, then rerun the import cell. Editable Pages exports bundle the helper automatically.

Generated session state and saved outputs under __marimo__/ are ignored and are not shipped with the sources; run the notebooks to generate their outputs.

How to cite this work

Release metadata for Zenodo is maintained in .zenodo.json. The citation below refers to the archived v0.2.0 release.

Here is a suggestion to cite this GitHub repository:

Marcos Duarte and Renato Naville Watanabe. (2026). Notes on Scientific Computing for Biomechanics and Motor Control (Version v0.2.0). Zenodo. https://doi.org/10.5281/zenodo.23654869

And a BibTeX entry:

@misc{marcos_duarte_2026_23654869,
  author       = {Marcos Duarte and Renato Naville Watanabe},
  title        = ,
  month        = oct,
  year         = 2026,
  publisher    = {Zenodo},
  doi          = {10.5281/zenodo.23654869},
  url          = {https://doi.org/10.5281/zenodo.23654869}
}

License

The non-software content of this project is licensed under a Creative Commons Attribution 4.0 International License, and the software code is licensed under the MIT license.