Skip to content

Commit a3cd90c

Browse files
committed
chore: Refactor to use standardized naming and color scheme in project.
1 parent a4bdd21 commit a3cd90c

88 files changed

Lines changed: 352 additions & 341 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
name: HeartKit CI
1+
name: heartKIT CI
22

33
on: [push]
44

55
env:
6-
PYTHON_VERSION: '3.11'
6+
PYTHON_VERSION: '3.12'
77

88
jobs:
99
build:

.github/workflows/release.yaml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,20 @@ on:
88
- "v*"
99
workflow_dispatch:
1010

11+
env:
12+
PACKAGE_NAME: heartkit
13+
PYTHON_VERSION: "3.12"
14+
1115
jobs:
1216
build:
1317
runs-on: ubuntu-latest
1418
steps:
1519
- name: Checkout 🛎️
1620
uses: actions/checkout@v4
21+
- name: Setup Python 🐍
22+
uses: actions/setup-python@v5
23+
with:
24+
python-version: ${{ env.PYTHON_VERSION }}
1725
- name: Install uv
1826
uses: astral-sh/setup-uv@v5
1927
with:
@@ -33,7 +41,7 @@ jobs:
3341
- build
3442
environment:
3543
name: pypi
36-
url: https://pypi.org/p/heartkit
44+
url: https://pypi.org/p/${{ env.PACKAGE_NAME }}
3745
permissions:
3846
id-token: write
3947
steps:

AGENTS.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# AGENTS
2+
3+
Repo-specific notes for automation and maintenance:
4+
- Python target is 3.12; use `uv sync` for installs and `uv run pytest tests/` for tests.
5+
- Docs use MkDocs Material; preview with `mkdocs serve` and keep headings plain Markdown (no span wrappers).
6+
- Prefer `rg` for searches and avoid touching binary assets unless requested.
7+
- Commit messages follow Conventional Commits (e.g., `feat: ...`, `fix: ...`, `chore: ...`).

README.md

Lines changed: 24 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,26 @@
11

2-
<p align="center">
3-
<a href="https://github.com/AmbiqAI/heartkit"><img src="./docs/assets/heartkit-banner.png" alt="HeartKit"></a>
4-
</p>
2+
# heartKIT
53

6-
---
7-
8-
**Documentation**: <a href="https://ambiqai.github.io/heartkit" target="_blank">https://ambiqai.github.io/heartkit</a>
4+
> An AI Development Kit for real-time heart-monitoring on ultra-low power SoCs
95
10-
**Source Code**: <a href="https://github.com/AmbiqAI/heartkit" target="_blank">https://github.com/AmbiqAI/heartkit</a>
6+
[![CI](https://github.com/AmbiqAI/heartkit/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/AmbiqAI/heartkit/actions/workflows/ci.yaml)
7+
[![Docs](https://github.com/AmbiqAI/heartkit/actions/workflows/docs.yaml/badge.svg?branch=main)](https://github.com/AmbiqAI/heartkit/actions/workflows/docs.yaml)
8+
[![Release](https://github.com/AmbiqAI/heartkit/actions/workflows/release.yaml/badge.svg?branch=main)](https://github.com/AmbiqAI/heartkit/actions/workflows/release.yaml)
119

12-
---
1310

14-
HeartKit is an AI Development Kit (ADK) that enables developers to easily train and deploy real-time __heart-monitoring__ models onto [Ambiq's family of ultra-low power SoCs](https://ambiq.com/soc/). The kit provides a variety of datasets, efficient model architectures, and heart-related tasks. In addition, HeartKit provides optimization and deployment routines to generate efficient inference models. Finally, the kit includes a number of pre-trained models and task-level demos to showcase the capabilities.
11+
heartKIT is an AI Development Kit (ADK) that enables developers to easily train and deploy real-time __heart-monitoring__ models onto [Ambiq's family of ultra-low power SoCs](https://ambiq.com/soc/). The kit provides a variety of datasets, efficient model architectures, and heart-related tasks. In addition, heartKIT provides optimization and deployment routines to generate efficient inference models. Finally, the kit includes a number of pre-trained models and task-level demos to showcase the capabilities.
1512

1613
**Key Features:**
1714

1815
* **Real-time**: Inference is performed in real-time on battery-powered, edge devices.
1916
* **Efficient**: Leverage Ambiq's ultra low-power SoCs for extreme energy efficiency.
2017
* **Extensible**: Easily add new tasks, models, and datasets to the framework.
21-
* **Open Source**: HeartKit is open source and available on GitHub.
18+
* **Open Source**: heartKIT is open source and available on GitHub.
2219

2320

24-
## <span class="sk-h2-span">Requirements
21+
## Requirements
2522

26-
* [Python ^3.11+](https://www.python.org)
23+
* [Python ^3.12+](https://www.python.org)
2724
* [uv ^1.6.1+](https://docs.astral.sh/uv/getting-started/installation/)
2825

2926
The following are also required to compile/flash the binary for the EVB demo:
@@ -34,7 +31,7 @@ The following are also required to compile/flash the binary for the EVB demo:
3431
!!! note
3532
A [VSCode Dev Container](https://code.visualstudio.com/docs/devcontainers/containers) is also available and defined in [./.devcontainer](https://github.com/AmbiqAI/heartkit/tree/main/.devcontainer).
3633

37-
## <span class="sk-h2-span">Installation</span>
34+
## Installation
3835

3936
To get started, first install the local python package `heartkit` along with its dependencies via `PyPi`:
4037

@@ -52,15 +49,15 @@ uv sync
5249

5350
---
5451

55-
## <span class="sk-h2-span">Usage</span>
52+
## Usage
5653

57-
__HeartKit__ can be used as either a CLI-based tool or as a Python package to perform advanced development. In both forms, HeartKit exposes a number of modes and tasks outlined below. In addition, by leveraging highly-customizable configurations, HeartKit can be used to create custom workflows for a given application with minimal coding. Refer to the [Quickstart](https://ambiqai.github.io/heartkit/quickstart/) to quickly get up and running in minutes.
54+
__heartKIT__ can be used as either a CLI-based tool or as a Python package to perform advanced development. In both forms, heartKIT exposes a number of modes and tasks outlined below. In addition, by leveraging highly-customizable configurations, heartKIT can be used to create custom workflows for a given application with minimal coding. Refer to the [Quickstart](https://ambiqai.github.io/heartkit/quickstart/) to quickly get up and running in minutes.
5855

5956
---
6057

61-
## <span class="sk-h2-span">Tasks</span>
58+
## Tasks
6259

63-
__HeartKit__ includes a number of built-in **tasks**. Each task provides reference routines for training, evaluating, and exporting the model. The routines can be customized by providing a configuration file or by setting the parameters directly in the code. Additional tasks can be easily added to the __HeartKit__ framework by creating a new task class and registering it to the __task factory__.
60+
__heartKIT__ includes a number of built-in **tasks**. Each task provides reference routines for training, evaluating, and exporting the model. The routines can be customized by providing a configuration file or by setting the parameters directly in the code. Additional tasks can be easily added to the __heartKIT__ framework by creating a new task class and registering it to the __task factory__.
6461

6562
- **Denoise**: Remove noise and artifacts from signals
6663
- **Segmentation**: Perform ECG/PPG based segmentation
@@ -70,9 +67,9 @@ __HeartKit__ includes a number of built-in **tasks**. Each task provides referen
7067

7168
---
7269

73-
## <span class="sk-h2-span">Modes</span>
70+
## Modes
7471

75-
__HeartKit__ provides a number of **modes** that can be invoked for a given task. These modes can be accessed via the CLI or directly from the `task` within the Python package.
72+
__heartKIT__ provides a number of **modes** that can be invoked for a given task. These modes can be accessed via the CLI or directly from the `task` within the Python package.
7673

7774
- **Download**: Download specified datasets
7875
- **Train**: Train a model for specified task and datasets
@@ -82,9 +79,9 @@ __HeartKit__ provides a number of **modes** that can be invoked for a given task
8279

8380
---
8481

85-
## <span class="sk-h2-span">Datasets</span>
82+
## Datasets
8683

87-
__HeartKit__ exposes several open-source datasets for training each of the HeartKit tasks via a __dataset factory__. For certain tasks, we also provide synthetic data provided by [PhysioKit](https://ambiqai.github.io/physiokit) to help improve model generalization. Each dataset has a corresponding Python class to aid in downloading and generating data for the given task. Additional datasets can be easily added to the HeartKit framework by creating a new dataset class and registering it to the dataset factory.
84+
__heartKIT__ exposes several open-source datasets for training each of the heartKIT tasks via a __dataset factory__. For certain tasks, we also provide synthetic data provided by [PhysioKit](https://ambiqai.github.io/physiokit) to help improve model generalization. Each dataset has a corresponding Python class to aid in downloading and generating data for the given task. Additional datasets can be easily added to the heartKIT framework by creating a new dataset class and registering it to the dataset factory.
8885

8986
* **Icentia11k**: 11-lead ECG data collected from 11,000 subjects captured continously over two weeks.
9087
* **LUDB**: 200 ten-second 12-lead ECG records w/ annotated P-wave, QRS, and T-wave boundaries.
@@ -96,9 +93,9 @@ __HeartKit__ exposes several open-source datasets for training each of the Heart
9693

9794
---
9895

99-
## <span class="sk-h2-span">Models</span>
96+
## Models
10097

101-
__HeartKit__ provides a __model factory__ that allows you to easily create and train customized models. The model factory includes a number of modern networks well suited for efficient, real-time edge applications. Each model architecture exposes a number of high-level parameters that can be used to customize the network for a given application. These parameters can be set as part of the configuration accessible via the CLI and Python package.
98+
__heartKIT__ provides a __model factory__ that allows you to easily create and train customized models. The model factory includes a number of modern networks well suited for efficient, real-time edge applications. Each model architecture exposes a number of high-level parameters that can be used to customize the network for a given application. These parameters can be set as part of the configuration accessible via the CLI and Python package.
10299

103100
- **[TCN](https://ambiqai.github.io/helia-edge/api/helia_edge/models/tcn)**: A CNN leveraging dilated convolutions (key=`tcn`)
104101
- **[U-Net](https://ambiqai.github.io/helia-edge/api/helia_edge/models/unet)**: A CNN with encoder-decoder architecture for segmentation tasks (key=`unet`)
@@ -113,14 +110,14 @@ __HeartKit__ provides a __model factory__ that allows you to easily create and t
113110

114111
---
115112

116-
## <span class="sk-h2-span">Model Zoo</span>
113+
## Model Zoo
117114

118-
A number of pre-trained models are available for each task. These models are trained on a variety of datasets and are optimized for deployment on Ambiq's ultra-low power SoCs. In addition to providing links to download the models, __HeartKit__ provides the corresponding configuration files and performance metrics. The configuration files allow you to easily retrain the models or use them as a starting point for a custom model. Furthermore, the performance metrics provide insights into the model's accuracy, precision, recall, and F1 score. For a number of the models, we provide experimental and ablation studies to showcase the impact of various design choices. Check out the [Model Zoo](https://ambiqai.github.io/heartkit/zoo) to learn more about the available models and their corresponding performance metrics.
115+
A number of pre-trained models are available for each task. These models are trained on a variety of datasets and are optimized for deployment on Ambiq's ultra-low power SoCs. In addition to providing links to download the models, __heartKIT__ provides the corresponding configuration files and performance metrics. The configuration files allow you to easily retrain the models or use them as a starting point for a custom model. Furthermore, the performance metrics provide insights into the model's accuracy, precision, recall, and F1 score. For a number of the models, we provide experimental and ablation studies to showcase the impact of various design choices. Check out the [Model Zoo](https://ambiqai.github.io/heartkit/zoo) to learn more about the available models and their corresponding performance metrics.
119116

120117
---
121118

122-
## <span class="sk-h2-span">Guides</span>
119+
## Guides
123120

124-
Checkout the [Guides](https://ambiqai.github.io/heartkit/guides) to see detailed examples and tutorials on how to use HeartKit for a variety of tasks. The guides provide step-by-step instructions on how to train, evaluate, and deploy models for a given task. In addition, the guides provide insights into the design choices and performance metrics for the models. The guides are designed to help you get up and running quickly and to provide a deeper understanding of the models and tasks available in HeartKit.
121+
Checkout the [Guides](https://ambiqai.github.io/heartkit/guides) to see detailed examples and tutorials on how to use heartKIT for a variety of tasks. The guides provide step-by-step instructions on how to train, evaluate, and deploy models for a given task. In addition, the guides provide insights into the design choices and performance metrics for the models. The guides are designed to help you get up and running quickly and to provide a deeper understanding of the models and tasks available in heartKIT.
125122

126123
---

docs/assets/favicon.png

-26.1 KB
Loading
23.9 KB
Loading

docs/assets/heartkit-logo-dark.png

32.2 KB
Loading
35.2 KB
Loading

docs/assets/logo-white.png

12.4 KB
Loading

docs/assets/logo.png

-26.1 KB
Loading

0 commit comments

Comments
 (0)