How noackjona-hash/jonanoackignite works
Purpose and entry points
IGNITE is a desktop medical thermal-image analysis client for ThermoAI Vision. Its primary executable entry point is main.py, which prioritizes immediate UI startup while deferring heavy imaging/ML imports. The desktop package is built for distribution with PyInstaller (Ignite.spec) and an installer definition (ignite_installer.iss). A separate static/Vite-style product landing site lives under ignite-landing/src/main.js.
Application bootstrap and responsive UI
The startup path coordinates a lightweight splash/loading experience, background initialization, and the main CustomTkinter event loop. The main dashboard and user-driven analysis controls are centered in:
• main.py
• gui/main_window.py
• gui/theme.py
This is a desktop GUI boundary: UI work must remain on the Tk/CustomTkinter thread, while expensive imports and image analysis should execute asynchronously to avoid blocking interaction.
Thermal image-processing pipeline
The computer-vision layer performs local processing of thermal imagery, including bilateral filtering, CLAHE enhancement, contour segmentation, ROI/foot isolation, and bilateral temperature comparison. Its core processing boundary is:
• image_processing.py
• utils.py
• config.py
The pipeline consumes selected thermal images from the UI, produces derived image/measurement results for presentation, and is intended to keep calculations in memory. OpenCV, NumPy, Pillow, and potentially PyTorch are material runtime dependencies.
Native/Rust computation core
The repository includes a Rust crate alongside the Python application, suggesting selected performance-sensitive or correctness-critical functionality is implemented or being migrated into a native core:
• Cargo.toml
• src/lib.rs
• Cargo.lock
Python/Rust behavioral alignment is explicitly represented by parity-oriented tests, making this an important interface boundary: Python-side processing and the Rust library should preserve equivalent results and data semantics.
Data persistence and audit boundary
Application-local state, persisted settings, and audit-related behavior are separated from visual and processing code:
• storage.py
• audit_log.py
• settings.json
This layer is the likely boundary for retaining user preferences, derived metadata, and compliance-relevant audit records. Raw medical imagery should not be treated as durable application data unless explicitly required, consistent with the stated privacy-first design.
Privacy and analysis-service integration
The intended deployment model supports local image processing and potentially encrypted communication with a local FastAPI-based ThermoAI analysis backend. The desktop client is therefore responsible for controlling the transition between local UI/image handling and any backend request path. Relevant client-side orchestration and settings surfaces are:
• main.py
• config.py
• storage.py
No backend service source is present in this tree; FastAPI/TLS infrastructure is an external integration rather than a repository-owned server runtime.
Packaging, release, and public distribution
Desktop packaging combines Python dependencies with application assets into installable artifacts, while CI builds and releases wheels:
• Ignite.spec
• .github/workflows/build_wheels.yml
• .github/workflows/release.yml
The separate web landing project distributes installation material and marketing assets, including a public Windows installer:
• ignite-landing/src/main.js
• ignite-landing/public/IGNITE_Setup_v1.0.0.exe
Main entry points: image_processing.py Thermal processing · main.py Application bootstrap · main_window.py Dashboard and controls · storage.py Local state storage
Components 20
Desktop Client
Local privacy-first thermal analysis application.
- Application bootstrap · Starts the UI promptly and defers heavy initialization.
main.py - Dashboard and controls · Owns user interaction and presentation on the Tk thread.
gui/main_window.py - UI theme
gui/theme.py - Background analysis · Keeps imports and image processing off the UI thread.
main.py - Thermal processing · Filters, enhances, segments feet/ROIs, and compares temperatures in memory.
image_processing.py - Image utilities
utils.py - Client configuration · Supplies processing and service-integration settings.
config.py - Local state storage · Retains preferences and derived metadata rather than raw imagery by default.
storage.py - Audit logging
audit_log.py - Persisted settings
settings.json
Native Core
Rust implementation boundary for parity-sensitive computation.
- Rust native library · Performance or correctness-critical implementation with Python parity requirements.
src/lib.rs - Rust crate manifest
Cargo.toml - Rust dependency lock
Cargo.lock
Distribution
Desktop release and public landing-site delivery.
- PyInstaller build · Packages the Python desktop application and assets.
Ignite.spec - Wheel build CI
.github/workflows/build_wheels.yml - Release CI
.github/workflows/release.yml - Product landing site · Publishes installation material and marketing assets.
ignite-landing/src/main.js - Windows installer asset
ignite-landing/public/IGNITE_Setup_v1.0.0.exe - Installer definition
ignite_installer.iss
Other components
- ThermoAI backend · Optional encrypted local analysis-service integration; source is not in this repository.
Connections 21
- Application bootstrap → Dashboard and controls: starts
- Application bootstrap → Background analysis: defers work to
- Dashboard and controls → UI theme: applies
- Dashboard and controls → Background analysis: submits selected images
- Background analysis → Thermal processing: runs
- Thermal processing → Image utilities: uses
- Client configuration → Thermal processing: configures
- Thermal processing → Dashboard and controls: returns derived results
- Thermal processing → Rust native library: maintains behavioral parity with
- Client configuration → ThermoAI backend: controls optional endpoint
- Background analysis → ThermoAI backend: optionally requests analysis
- Application bootstrap → Local state storage: loads and saves state
- Local state storage → Persisted settings: persists
- Local state storage → Audit logging: records audit events
- Rust crate manifest → Rust native library: defines
- Rust dependency lock → Rust native library: locks dependencies for
- PyInstaller build → Application bootstrap: packages
- Installer definition → PyInstaller build: installs packaged application
- Wheel build CI → PyInstaller build: builds release artifacts
- Release CI → Wheel build CI: publishes build outputs
- Product landing site → Windows installer asset: distributes