Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
7cbe865
live Coords
Jun 15, 2026
bd6f27b
fix threading issue
Jun 15, 2026
0b8c376
move to abs coords input
Jun 15, 2026
a0a61d7
buttons to save 3 points for a circle
Jun 15, 2026
47b8945
calculate the radius and center from 3 points
Jun 15, 2026
5fabaf8
scan a circle hopefully
Jun 15, 2026
4b4740e
less time between
Jun 15, 2026
5a4af0e
worm detector
Jun 16, 2026
8216fe7
center after detection
Jun 16, 2026
bdb319d
fix center and display images
Jun 16, 2026
6477e03
shared autofocus and do it after finding the worm
Jun 16, 2026
81629c4
fix asyncio thread conflict
Jun 16, 2026
7b1adaf
scan till found or stopped
Jun 16, 2026
399171c
safe movement to not colide with the y< 65 and z > 135
Jun 17, 2026
0182d8d
add progress bar
Jun 17, 2026
53859f9
add progress bar
Jun 17, 2026
3a3a0d5
autofocus by gradient
Jun 17, 2026
2f68ab1
autofocus smaller step size and predefined circle in ui
Jun 17, 2026
8a1eba1
autofocus
Jun 17, 2026
187dd66
remove depth of feild from estimation
Jun 17, 2026
0d43cc2
ditcher hill-climb as we are stuck near the good values
Jun 17, 2026
363afda
benchmark scan and track
Jun 18, 2026
934d223
live view
Jun 18, 2026
977a94c
live view
Jun 18, 2026
80393eb
live view
Jun 18, 2026
2a856b5
live view
Jun 18, 2026
7b9f58a
dont wait
Jun 18, 2026
b83357e
try minimise waiting
Jun 18, 2026
0c4dedc
separate scanning/tracking/user input speed/accel config
Jun 18, 2026
82ba434
average_for_autofocus
Jun 19, 2026
cf59959
average_for_autofocus
Jun 19, 2026
3a32f25
halve step size
Jun 19, 2026
7f48509
scan -> lower exposure/gain -> focus -> track
Jun 19, 2026
1069983
scan -> lower exposure/gain -> focus -> track
Jun 19, 2026
6cca1fe
shared memory for saving frames mostly from https://github.com/real-…
Jun 19, 2026
012730e
dont open new windowws
Jun 19, 2026
fe62945
dont open new windowws
Jun 19, 2026
07a7a63
dont open new windowws
Jun 19, 2026
ac96b42
sep thread
Jun 19, 2026
c25484c
sep thread
Jun 19, 2026
b320af2
no live calculations during recording
Jun 22, 2026
0239282
sep thread
Jun 22, 2026
77ce699
full window
Jun 22, 2026
788ffc9
detect worm while sweep focusing
Jun 22, 2026
148f2d9
dac
Jun 23, 2026
d324061
dac
Jun 23, 2026
3d2a9ee
dac
Jun 23, 2026
3b86f9b
intensity
Jun 24, 2026
90d57c8
intensity
Jun 24, 2026
90f4c79
intensity
Jun 24, 2026
151f4b9
find z
Jun 24, 2026
4826e25
find z
Jun 24, 2026
4d0a896
find z before the scan and move scan orchestrator to its own thread w…
Jun 24, 2026
e61932f
refactor scan so it is clock to main thread
Jun 24, 2026
14e8b25
make scan settings taller
Jun 24, 2026
1c92896
make scan settings taller
Jun 24, 2026
56a72d3
second derivative
Jun 26, 2026
007371e
second derivative
Jun 26, 2026
1d775b2
rotation for scanning fix
Jun 26, 2026
f88eb55
move to settings
Jun 26, 2026
ea9971a
time more
Jun 26, 2026
1053ab3
scan map
Jun 29, 2026
0325469
rotate
Jun 29, 2026
5a500d6
draw a plate
Jun 29, 2026
178430c
control
Jul 10, 2026
4584fe9
multiprocess only on mac/linux
Jul 16, 2026
adba639
gpt-5.6-sol audit: harden hardware safety, recording, and tests
iliasoroka1 Jul 17, 2026
f018371
keystroke fix
iliasoroka1 Jul 21, 2026
101e4c3
keystroke fix
iliasoroka1 Jul 21, 2026
74d84ff
keystroke fix
iliasoroka1 Jul 21, 2026
b8ea3f6
Audit: improve hardware safety, recording, tracking, and tests (gpt sol)
iliasoroka1 Jul 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 6 additions & 27 deletions .github/workflows/install_package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ["3.10", "3.11", "3.12", "3.13"]
python-version: ["3.11", "3.12", "3.13"]

steps:
- name: Checkout glowtracker
Expand All @@ -27,30 +27,9 @@ jobs:
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Debug action..
run: |
echo "runner os: ${{ runner.os }}"
echo "matrix os: ${{ matrix.os }}"
- name: Update pip
run: |
# The newest pip version (25.3) force support of PEP 517 and will cause error in pip-tools.
# Have to wait for a newer than version 7.5.1 piptools
python -m pip install --upgrade "pip<25.3"
python -m pip install --upgrade setuptools wheel pip-tools
- name: Compile requirements
# Generate the requirements.txt file listed in pyproject.toml
# NOTE: This step overwrites any previously existing requirements.txt file
run:
python -m piptools compile -o requirements.txt ${{ github.workspace }}/pyproject.toml --upgrade
- name: Install dependencies Linux/macOS
if: runner.os == 'Linux' || runner.os == 'macOS'
run:
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Install dependencies Windows
if: runner.os == 'Windows'
# Windows runner defaults to PowerShell (pwsh)
run:
if (Test-Path -Path requirements.txt) { pip install -r requirements.txt }
- name: Install glowtracker
run:
python -m pip install -e .
run: python -m pip install --upgrade pip
- name: Install glowtracker and test dependencies
run: python -m pip install -e ".[test]"
- name: Run tests
run: python -m pytest -q
4 changes: 2 additions & 2 deletions .github/workflows/publish_package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.10'
python-version: '3.12'
# Updating pip and installing 'build'.
- name: Install dependencies
run: |
Expand All @@ -48,4 +48,4 @@ jobs:
# Publish to PyPI using Trusted Publisher (GitHub)
# REF: https://docs.pypi.org/trusted-publishers/using-a-publisher/
- name: Publish package to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
uses: pypa/gh-action-pypi-publish@release/v1
39 changes: 31 additions & 8 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,13 +1,36 @@
# VSCode
.vscode/
.idea/
*.swp
*~

.DS_Store
._*
Thumbs.db

__pycache__/
*.py[cod]
*$py.class
.pytest_cache/
.ruff_cache/
.mypy_cache/
.pytype/
.coverage
.coverage.*
htmlcov/

.venv/
.venv-*/
*.venv/
venv/
env/

# Package building related
build/
dist/
glowtracker.egg-info/

# Python cache
__pycache__/*
*.egg-info/
pip-wheel-metadata/
/requirements.txt

# Convenience
*.log
*.log
*.part.tiff
*-basler_*.tiff
*-coords.txt
1 change: 1 addition & 0 deletions .python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.12
8 changes: 4 additions & 4 deletions BUILD.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,19 @@ or
```bash
uv build
```
The resulting packages will be in `dist/`, `glowtracker-[version].tar.gz` and `glowtracker-[version]-py3-none-any.why`.
The resulting packages will be in `dist/` as `glowtracker-[version].tar.gz` and `glowtracker-[version]-py3-none-any.whl`.
**Don't forget** to change the version accordingly. Following the convention of Major.Minor.Patch.

# Testing installing the package
We can test the package by install directly and locally form
Test the package by installing the local source distribution:
```bash
python -m pip install dist/glowtracker-[version].tar.gz
```
or
```bash
uv pip install dist/glowtracker-[version].tar.gz
```
Add `--python 3.10` to select a specific python version e.g. 3.10
Add `--python 3.12` to select the recommended Python version.


# Running
Expand All @@ -32,4 +32,4 @@ python -m glowtracker
or running the executable wrapper by simply type
```bash
glowtracker
```
```
69 changes: 29 additions & 40 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,61 +18,50 @@

## Getting started
### Software Setup
1. Create a Python environment using **uv** (recommend) or **venv**.
- Using **uv** (Recommend)
1. Install uv [[Link]](https://docs.astral.sh/uv/getting-started/installation/).
2. Create a virtual environment
```bash
uv venv glowtracker.venv
```
- Using **venv**
1. Create the environment
```bash
python -m venv glowtracker.venv
```

2. Activate the environment
GlowTracker supports Python 3.11 through 3.13. Python 3.12 is the recommended version.

1. Install [uv](https://docs.astral.sh/uv/getting-started/installation/).

2. Install GlowTracker from PyPI:

```bash
source glowtracker.venv/Scripts/activate
uv venv --python 3.12
uv pip install glowtracker
```

3. Install GlowTracker
You can choose to either install GlowTracker from a distributed Python package from PyPI or clone the git repository and run them locally.
Or install a development checkout using the locked dependencies:

- Using `pip` to install from PyPI repository:
```bash
uv pip install glowtracker
```
- Or clone and run the package locally.
1. Clone the pository
```bash
git clone https://github.com/scholz-lab/GlowTracker.git
```
2. Update the conda environment to download the dependencies
```bash
cd Glowtracker;
uv pip install -r pyproject.toml;
```


4. Install the **BASLER** pylon software and runtime library [[Link]](https://www.baslerweb.com/en/software/pylon/)
```bash
git clone https://github.com/scholz-lab/GlowTracker.git
cd GlowTracker
uv sync --extra test
uv run pytest -q
```

3. Install the **BASLER** pylon software and runtime library [[Link]](https://www.baslerweb.com/en/software/pylon/)
- pylon Camera Software Suite
- pylon runtime library

5. (Optional) Install **Zaber Launcher** for inspecting and updating stage firmware [[Link]](https://software.zaber.com/zaber-launcher/download)
4. (Optional) Install **Zaber Launcher** for inspecting and updating stage firmware [[Link]](https://software.zaber.com/zaber-launcher/download)

5. Start the application.

- From an activated environment:

6. After finished installation, the software can be started in several ways
- If you have installed it via pip
```bash
python -m glowtracker
```
or simply

or:

```bash
glowtracker
```
- If you have installed it by cloning the package and running them locally

- From a development checkout without activating the environment:

```bash
python glowtracker/__main__.py
uv run glowtracker
```

### Device Setup
Expand Down
Loading
Loading