Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
b69193b
Add feedback/ to .gitignore
marpaia Sep 24, 2026
7643ba3
Establish explicit viewer dataset presentation lifecycle
marpaia Sep 24, 2026
6e544e3
Cap tutorial founder lengths at their sampled division thresholds
marpaia Sep 24, 2026
571254a
Keep reference grid geometry fixed within each dataset
marpaia Sep 24, 2026
014ffe3
Preserve channel labels across models checkpoints and scenes
marpaia Sep 24, 2026
ef3ce89
Share validated scalar ranges across cell and signal coloring
marpaia Sep 24, 2026
d65f848
Combine viewer lifecycle and metadata prerequisites for replay
marpaia Sep 24, 2026
af99548
Preserve device visibility as a dataset presentation preference
marpaia Sep 24, 2026
ed5bda0
Add cooperative live-session shutdown and port reuse tests
marpaia Sep 24, 2026
8ee43ab
Add persistent channel range editors and concentration legends
marpaia Sep 24, 2026
b0f98ee
Combine channel metadata and scalar ranges for composite coloring
marpaia Sep 24, 2026
283c0ee
Pause disconnected sessions before admitting reconnects
marpaia Sep 24, 2026
4ccef4f
Specify conservative cell occupancy transport with executable referen…
marpaia Sep 24, 2026
1351bcc
Add linear RGB composite species coloring and channel controls
marpaia Sep 24, 2026
1b69e4a
Export checkpoint recordings and replay verified frames offline
marpaia Sep 24, 2026
b50c72d
Test real Windows console interruption and port reuse
marpaia Sep 24, 2026
f2c1790
Combine shutdown and founder initialization prerequisites for issue 24
marpaia Sep 24, 2026
63adb45
Diagnose out-of-plane motion and document tutorial dimensionality
marpaia Sep 24, 2026
1781435
Match capsule surfaces and release replaced instance buffers
marpaia Sep 24, 2026
3ccd5a6
Preserve pending replay seeks and retry failed requested frames
marpaia Sep 24, 2026
27776ba
Document and execute tutorial commands across backends and shells
marpaia Sep 24, 2026
e96672c
Match Vite query strings in scalar range browser hook
marpaia Sep 24, 2026
215e87d
Keep command checks float32-aware and bound failed process cleanup
marpaia Sep 24, 2026
9a27f87
Match Vite query strings in composite browser hook
marpaia Sep 24, 2026
2a6bdc0
Match Vite query strings in reference grid browser hook
marpaia Sep 24, 2026
c1cb4d6
Match Vite query strings in device visibility browser hook
marpaia Sep 24, 2026
5e1fdec
Record executed Windows PowerShell tutorial verification
marpaia Sep 24, 2026
ae428e5
Bound scene channel metadata allocation and preserve compact legacy l…
marpaia Sep 24, 2026
2d30fc7
Format new founder regression test blocks
marpaia Sep 24, 2026
f450e13
Keep channel labels unique when names imitate index suffixes
marpaia Sep 25, 2026
9838289
Normalize displayed channel whitespace before disambiguation
marpaia Sep 25, 2026
a29ae2b
Bound WebSocket shutdown drains and abort stalled transports
marpaia Sep 25, 2026
4451295
Bound kernel send buffering in portable shutdown regression
marpaia Sep 25, 2026
2b03f16
Pause probe reads before WebSocket upgrade to prevent prefetch
marpaia Sep 25, 2026
c67ff0d
Report server await chains when backpressure setup fails
marpaia Sep 25, 2026
e9e631f
Establish measured Windows backpressure with bounded real frame requests
marpaia Sep 25, 2026
4677491
Use one bounded setup budget for native frame acknowledgements
marpaia Sep 25, 2026
331b6e5
Merge pull request #26 from DRAGGON-Lab/marpaia/22
marpaia Sep 25, 2026
c8f3b30
Merge pull request #27 from DRAGGON-Lab/marpaia/20
marpaia Sep 25, 2026
8dc0094
Integrate landed founders and dataset controls into channel metadata
marpaia Sep 25, 2026
55e4e34
Format merged viewer feature documentation
marpaia Sep 25, 2026
e7c9537
Merge pull request #28 from DRAGGON-Lab/marpaia/18
marpaia Sep 25, 2026
fbb2f4c
Merge pull request #31 from DRAGGON-Lab/marpaia/13
marpaia Sep 25, 2026
5d586e8
Combine shutdown with landed metadata and initialization changes
marpaia Sep 25, 2026
e72dda1
Integrate landed metadata and dataset controls with capsule rendering
marpaia Sep 25, 2026
43819bc
Include reviewed shutdown prerequisite before capsule landing
marpaia Sep 25, 2026
62c4d99
Integrate landed dataset and channel metadata changes
marpaia Sep 25, 2026
df2834d
Merge branch 'marpaia/21' into marpaia/23
marpaia Sep 25, 2026
c6a759e
Merge pull request #34 from DRAGGON-Lab/marpaia/17
marpaia Sep 25, 2026
9bf95f5
Merge pull request #36 from DRAGGON-Lab/marpaia/21
marpaia Sep 25, 2026
7c215a2
Combine scalar ranges with reviewed viewer prerequisites
marpaia Sep 25, 2026
5057e8d
Integrate replay with reviewed range and rendering changes
marpaia Sep 25, 2026
a18f60d
Merge branch 'marpaia/16' into marpaia/14
marpaia Sep 25, 2026
6ecd89b
Combine shell guidance with reviewed planarity and viewer changes
marpaia Sep 25, 2026
cbcc81e
Merge pull request #29 from DRAGGON-Lab/marpaia/23
marpaia Sep 25, 2026
b0bf3ff
Merge pull request #30 from DRAGGON-Lab/marpaia/15
marpaia Sep 25, 2026
8438d36
Combine composite colors with landed features and integration regress…
marpaia Sep 25, 2026
149a26d
Merge pull request #33 from DRAGGON-Lab/marpaia/16
marpaia Sep 25, 2026
361393e
Merge pull request #35 from DRAGGON-Lab/marpaia/14
marpaia Sep 25, 2026
09663df
Decode linked Markdown as UTF-8 in Windows command validation
marpaia Sep 25, 2026
89bb1f9
Merge branch 'marpaia/24' into marpaia/19
marpaia Sep 25, 2026
2c0d901
Merge pull request #37 from DRAGGON-Lab/marpaia/24
marpaia Sep 25, 2026
1aae4d2
Merge pull request #32 from DRAGGON-Lab/marpaia/19
marpaia Sep 25, 2026
35ab73c
Implement the Metal/CUDA occupancy API, including geometry, conservat…
marpaia Sep 28, 2026
bd13ca2
Initial commit of Media Flow and Mother Machine
marpaia Sep 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 9 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,12 @@ ColumnLimit: 100
DerivePointerAlignment: false
PointerAlignment: Left
SortIncludes: CaseSensitive
AllowShortFunctionsOnASingleLine: Empty
AllowShortBlocksOnASingleLine: Never
AllowShortIfStatementsOnASingleLine: Never
AllowShortLoopsOnASingleLine: false
AllowShortLambdasOnASingleLine: None
InsertBraces: true
SeparateDefinitionBlocks: Always
MaxEmptyLinesToKeep: 1
KeepEmptyLinesAtTheStartOfBlocks: false
4 changes: 2 additions & 2 deletions .clang-tidy
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@ Checks: >-
-portability-avoid-pragma-once,
-readability-magic-numbers,
-readability-identifier-length
WarningsAsErrors: ''
HeaderFilterRegex: 'cpp/(include|core|cpu)/.*'
WarningsAsErrors: ""
HeaderFilterRegex: "cpp/(include|core|cpu)/.*"
FormatStyle: file
5 changes: 5 additions & 0 deletions .cmake-format.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
format:
line_width: 100
tab_size: 2
markup:
enable_markup: false
18 changes: 18 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 2
trim_trailing_whitespace = true

[*.{py,pyi}]
indent_size = 4

[*.md]
trim_trailing_whitespace = false

[Makefile]
indent_style = tab
80 changes: 80 additions & 0 deletions .github/workflows/live-shutdown-windows.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
name: Windows CLI and live-session checks

on:
pull_request:
paths:
- .github/workflows/live-shutdown-windows.yml
- CMakeLists.txt
- cpp/**
- python/**
- docs/tutorials/**
- docs/development/tutorial-command-validation.md
- environments/**/README.md
- viewer/README.md
- pyproject.toml
- uv.lock
push:
branches: [master, marpaia/17, marpaia/24]
workflow_dispatch:

permissions:
contents: read

concurrency:
group: windows-live-shutdown-${{ github.ref }}
cancel-in-progress: true

jobs:
shutdown:
runs-on: windows-2025
timeout-minutes: 20
defaults:
run:
shell: pwsh
env:
CMAKE_BUILD_PARALLEL_LEVEL: "2"
# Exercise the host reference engine without requiring a GPU toolkit.
CMAKE_ARGS: -DCM_ENABLE_METAL=OFF -DCM_ENABLE_CUDA=OFF -DCM_BUILD_TESTS=OFF
MICROSIMULATOR_COMMAND_REPORT: build/shutdown-evidence/tutorial-commands
steps:
- name: Check out source
uses: actions/checkout@v6
with:
persist-credentials: false

- name: Set up uv
uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
with:
enable-cache: true
python-version: "3.12"

- name: Build CPU extension and install locked test dependencies
run: uv sync --locked --group dev

- name: Record platform, shell, interpreter, and backend
run: |
New-Item -ItemType Directory -Force build/shutdown-evidence | Out-Null
$PSVersionTable | Out-File build/shutdown-evidence/platform.txt
[System.Environment]::OSVersion | Out-File -Append build/shutdown-evidence/platform.txt
uv run --no-sync python --version 2>&1 | Tee-Object -Append build/shutdown-evidence/platform.txt
uv run --no-sync microsimulator devices --json | Tee-Object -Append build/shutdown-evidence/platform.txt

- name: Verify Stop, console Ctrl+C, worker draining, and same-port restart
run: >-
uv run --no-sync python -m pytest
python/tests/test_viewer_server.py python/tests/test_viewer_shutdown.py
-v --tb=short --junitxml=build/shutdown-evidence/tests.xml

- name: Execute the documented PowerShell CLI commands
run: >-
uv run --no-sync python -m pytest python/tests/test_tutorial_commands.py
-v --tb=short --junitxml=build/shutdown-evidence/tutorial-commands.xml

- name: Upload shutdown evidence
if: ${{ always() }}
uses: actions/upload-artifact@v7
with:
name: windows-live-shutdown-${{ github.sha }}
path: build/shutdown-evidence
if-no-files-found: warn
retention-days: 30
53 changes: 53 additions & 0 deletions .github/workflows/quality.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Code quality

on:
pull_request:
push:
workflow_dispatch:

permissions:
contents: read

concurrency:
group: quality-${{ github.ref }}
cancel-in-progress: true

jobs:
quality:
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
with:
enable-cache: true
- uses: actions/setup-node@v6
with:
node-version: "24"
- name: Install pinned pnpm
run: npm install --global pnpm@10.12.1
- run: pnpm --dir viewer install --frozen-lockfile
- name: Check all maintained files
run: uv run --isolated --locked --only-group quality python scripts/quality.py check
- name: Test quality tooling
run: uv run --isolated --locked --only-group quality python -m unittest discover -s tests/quality
- name: Type-check viewer
run: pnpm --dir viewer check

python-types:
runs-on: ubuntu-24.04
timeout-minutes: 15
env:
CMAKE_ARGS: -DCM_ENABLE_METAL=OFF -DCM_ENABLE_CUDA=OFF -DCM_BUILD_TESTS=OFF
CMAKE_BUILD_PARALLEL_LEVEL: "2"
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
- uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
with:
enable-cache: true
- run: uv sync --locked --group dev
- run: uv run --locked --no-sync pyright
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ __pycache__/
.mypy_cache/
compile_commands.json
results/
feedback/
30 changes: 13 additions & 17 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,27 +20,23 @@ repos:
- id: trailing-whitespace
exclude: ^docs/tutorials/devices/

# Pinned to the version the project depends on, so a hook run and a local
# `ruff check` enforce the same rule set. Formatting is deliberately absent:
# the linter's rules, including import order, are what this tree follows.
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.16.3
hooks:
- id: ruff
args: [--fix]

- repo: https://github.com/pre-commit/mirrors-clang-format
rev: v19.1.7
hooks:
- id: clang-format
types_or: [c++, c, cuda, objective-c++, metal]
files: ^cpp/

- repo: local
hooks:
- id: format
name: Format maintained files
entry: uv run --isolated --locked --only-group quality python scripts/quality.py format
language: system
types: [text]
require_serial: true
- id: quality
name: Check formatting, lint, and complexity
entry: uv run --isolated --locked --only-group quality python scripts/quality.py check
language: system
types: [text]
require_serial: true
- id: pyright
name: pyright
entry: uv run pyright
entry: uv run --locked pyright
language: system
pass_filenames: false
types: [python]
6 changes: 6 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
build/
dist/
node_modules/
.venv/
uv.lock
**/pnpm-lock.yaml
4 changes: 4 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"proseWrap": "preserve",
"embeddedLanguageFormatting": "off"
}
3 changes: 3 additions & 0 deletions .taplo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[formatting]
column_width = 100
reorder_keys = false
3 changes: 3 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Repository conventions

Follow [CONTRIBUTING.md](CONTRIBUTING.md) for formatting, logical grouping, function limits, and validation. Run the shared quality commands rather than system formatter versions. Preserve numerical operation order and backend ownership when extracting helpers. Keep existing user work intact.
Loading
Loading