Changelogs

Project
GlyphMotion

Project Age Calculating...
Tracked Updates 18 Core Commits
Last Updated Calculating...
Flagship v4.0
Shitij Halder Shitij Halder Author Next-Gen Architecture
Sat Mar 21, 2026 • 07:38:10 IST
Release Class
Foundation Rewrite
Control Loop
Frame-Adaptive
Inference Target
ROI-Priority Fidelity
Operational Mode
Realtime + Verified
v4.0 Architecture Epoch

feat(v4.0): architect the Adaptive Media Intelligence Engine — HFDR×NVENC orchestration, benchmark-proofed control loop, and instant SSE admin revocation

This release promotes GlyphMotion into a next-gen media intelligence stack: a state-aware controller that dynamically balances quality, bitrate, and compute in realtime. The pipeline now outperforms raw baseline perceptual quality while maintaining aggressive size control and stable operations under production telemetry validation.

At an architecture level, v4.0 shifts decision-making from static encode presets to adaptive control logic: every frame path is selected based on motion, ROI relevance, and hardware capability. Instead of a monolithic "process-all-the-same" flow, GlyphMotion now behaves like a quality scheduler that routes detail reinjection, compression intensity, and compute load dynamically—delivering superior perceptual fidelity without runaway bandwidth or CPU saturation.

Architectural delta snapshot
  • Before: mostly linear processing with static compression behavior per run.
  • Now: frame-aware controller dynamically chooses enhancement + encode strategy in real time.
  • Before: quality and latency trade-offs were coupled and hard to tune.
  • Now: policy-driven routing separates quality objectives from throughput safeguards.
Perceptual Peak
VMAF 96.71
Exceeds raw native baseline (91.97)
Compression Control
34.33 MB
~50% smaller than native 42.67 MB path
Runtime Throughput
16.87 FPS
Near-realtime under adaptive control regime
Compute Shift
NVENC HEVC
Hardware encode path offloads CPU pressure
Baseline Raw YOLOv8 Native
VMAF
91.97
Size
42.67MB
FPS
17.60
Jitter
312.75ms
Old pipeline (CRF_24 draft)
VMAF
80.20
Size
26.18MB
FPS
18.19
Jitter
26.29ms
New pipeline (NVENC adaptive)
VMAF
96.71
Size
34.33MB
FPS
16.87
Jitter
27.04ms
comparative performance graph (zoom-normalized)
Raw YOLOv8 Native CRF_24 Draft NVENC Adaptive
VMAF (Higher Better)
91.97
Raw
80.20
Old
96.71
New
Output Size MB (Lower Better)
42.67
Raw
26.18
Old
34.33
New
Pipeline FPS (Higher Better)
17.60
Raw
18.19
Old
16.87
New
Latency Jitter ms (Lower Better)
312.75
Raw
26.29
Old
27.04
New

Interpretation note: FPS and other close-range runtime deltas (e.g., ~16.87 vs ~18.19 FPS, ~26.29 vs ~27.04ms jitter) are practically marginal in many deployments; the more material architectural shift is quality-control behavior and stability envelope under adaptive orchestration.

Benchmark Device Context (for metric interpretation)
  • Host: Dell G15 5530 (Ubuntu 24.04), NVIDIA RTX 3050 6GB (Ampere, CUDA 8.6).
  • GPU compute: 2,560 CUDA cores, 80 Tensor cores, 96-bit bus, ~168 GB/s bandwidth.
  • Video engines: 7th Gen NVENC + 5th Gen NVDEC, H.264/H.265 hardware acceleration, AV1 decode (no AV1 encode).
  • CPU + memory: Intel Core i5-13450HX (10C/16T) with 16GB DDR5-4800 RAM.
  • Storage: 1TB PCIe Gen4 x4 NVMe SSD for high-throughput media I/O during benchmarks.

Flagship Outcome: GlyphMotion no longer behaves like a tracker script with post-compression. It now operates as a frame-level decision engine that preserves semantically critical detail while actively minimizing bitrate and compute waste.

Quality Envelope

HFDR keeps object-edge detail stable in fast motion where plain compression previously smeared critical regions.

Compute Policy

Mode gating avoids unnecessary full-frame enhancement when scene complexity is low, preserving throughput.

Security Plane

Realtime SSE auth revocation removes stale admin sessions instantly across active dashboards.

Security note: production_benchmark.py remains private and is intentionally excluded from public GitHub pushes to preserve benchmarking-environment integrity and prevent external contamination of evaluation logic.

Files touched (7 files, +3018 / -98)

  • benchmark.htmladded (+1847 / -0)
  • ot.py — modified (+641 / -68)
  • tg.py — modified (+299 / -8)
  • index.html — modified (+133 / -0)
  • admin_tracker.html — modified (+80 / -5)
  • gh.py — modified (+16 / -16)
  • service-worker.js — modified (+2 / -1)
View Commit 9a6c544

Production Evidence + Systems Breakdown

HFDR Reinjection Adaptive Temporal + ROI NVIDIA NVENC HEVC Realtime Admin SSE Guard

Architecture map (control/data flow)

Source Frames
Signal Analyzer
Mode Selector
HFDR Path
NVENC / SW Encode
Telemetry + SSE

Architecture comparison (previous stack vs v4.0)

Dimension Previous Stack v4.0 Engine
Control Model Preset-oriented, mostly static path Adaptive controller with per-frame mode decisions
Detail Recovery Uniform post-processing ROI+temporal HFDR reinjection based on motion/context
Encode Strategy Primarily software-bound Hardware-aware `hevc_nvenc` path with deterministic fallback
Observability Limited telemetry granularity Mode counters + latency + stability metrics persisted by stage
Admin Security Session invalidation with delay windows Instant SSE auth revocation across active surfaces

HFDR execution pipeline (frame lifecycle)

1
Decode + inspection: each frame is profiled for motion delta, region complexity, and active object boxes from detector state.
2
Mode decision: controller chooses temporal-only or ROI+temporal reinjection based on change intensity and object relevance.
3
HFDR application: FFmpeg filter chain (`scale` + `unsharp`) applies localized high-frequency recovery where detail is most valuable.
4
Encode routing: runtime dispatches to `hevc_nvenc` on supported NVIDIA systems, else controlled software fallback path.
5
Telemetry commit: mode counts, latency stats, detections, confidence and stability metrics are persisted for benchmark collation.

Adaptive mode trigger matrix (what switches what)

Trigger Signal Controller Action Primary Goal
Low frame delta + static scene Reuse cached temporal detail path Reduce redundant compute
Object-heavy ROI motion Activate ROI+temporal HFDR mode Protect object-edge fidelity
Rising latency / throughput pressure Gate expensive full-frame reinjection Preserve realtime behavior
NVENC capability detected Route encode to `hevc_nvenc` Offload CPU, stabilize pipeline
No compatible GPU encoder Graceful fallback to software path Deterministic output continuity

NVIDIA NVENC integration (GPU-specific execution path)

  • Capability probe at startup: encoder negotiation checks for `hevc_nvenc` and initializes hardware path when available.
  • Workload separation: YOLO CUDA inference and NVENC hardware encoding run as coordinated but distinct execution layers.
  • CPU pressure relief: encode work exits hot CPU loops, allowing better scheduling headroom for detection/tracking operations.
  • Quality retention strategy: HFDR reinjection is preserved pre-encode so NVENC receives detail-enriched frames, not flattened inputs.

Benchmark harness and validation semantics

  • Subprocess isolation: benchmark runner executes production core as independent jobs per operating mode.
  • Quality + tracking fusion: `libvmaf` outputs are correlated with mode counters, latency metrics, and tracking consistency signals.
  • Ablation comparability: all variants use the same source asset and reporting envelope for fair stage-to-stage interpretation.
  • Integrity posture: private benchmark runner prevents external environment drift from polluting score reproducibility.

Admin control-plane hardening: realtime forced logout via SSE auth stream

Authenticated `/events/admin_auth` now emits `authRevoked` for immediate session invalidation. Active admin surfaces (`index`, `admin_tracker`, `benchmark`) instantly clear credentials and redirect without refresh, preserving cross-session security invariants during master-level logout-all actions.

v4.0 reliability guarantees

Deterministic fallback: pipeline degrades gracefully to software encode when hardware paths are unavailable.

Policy isolation: quality policy and throughput policy run separately to avoid instability cascades.

Validation integrity: private benchmark harness keeps score evolution reproducible and contamination-resistant.

Wed Mar 19, 2026 • 00:08:57 IST (18:38:57 UTC)
Crucial Fix

fix(sw): resolve stale cache preventing new video cards on normal refresh

Fixed critical PWA caching issue where video cards weren't appearing on normal refresh—only hard refresh worked. Bumped cache version, added network-first strategy for dynamic content, removed kill switches, and implemented auto-reload on SW activation.

View Commit f9a029f

Service Worker Cache & Update Orchestration

Cache Version Bump to v1.0.16

Incremented `CACHE_NAME` to force cache invalidation across all clients, ensuring stale cached pages and video metadata are evicted on first visit.

Network-First for Dynamic Content

Added `/videos.json`, `/changelogs.html`, `/about.html`, `/playground.html` to `networkFirstUrls` so service worker always fetches fresh copies from network first, then falls back to cache only when offline.

Auto-Reload on SW Activation

Implemented `onupdatefound + controllerchange` detection in index.html. When a new service worker activates, the page automatically reloads to ensure users see the latest assets without manual intervention.

Removed SW Unregister Kill Switches

Deleted forced `navigator.serviceWorker.unregister()` code from changelogs.html and about.html that was globally unregistering the SW on every page load, preventing normal PWA updates.

Files touched (5 files, +35 / -19)

  • service-worker.js — +12 / -1
  • index.html — +23 / -0
  • changelogs.html — +0 / -9
  • about.html — +0 / -9
Tue Mar 17, 2026 • 01:12:14 IST (19:42:14 UTC)
Cache & UI Sync

fix: PWA thumbnail caching and synchronize UI progress bars

Resolved severe caching issue where PWA Service Worker persistently locked in opaque fallback thumbnails for Drive requests, and perfected UI progress bar timings.

View Commit f541db4

Critical Cache Eviction

Fixed Stale Opaque Fallbacks

Added forceful Cache API eviction inside `onerror` event. If an opaque 404/broken image is served by Service Worker, the frontend actively deletes it to unstick the thumbnail cache.

PWA Caching Strategy Overhaul

Updated caching strategy for Drive thumbnails in `service-worker.js`. Intercepts retry URLs to cache canonical (query-less) paths, clearing corrupted states (bumped to v1.0.15 & Thumb cache v3).

Progress Bar UI Synchronization

Tightened target substrings for event streaming in `tg.py` & `index.html` to eliminate premature visual progress bar trigger events. Corrected `onload` bug improperly halting the thumbnail retry timer.

Files touched (3 files, +253 / -35)

  • index.html — +235 / -31
  • service-worker.js — +37 / -2
  • tg.py — +16 / -2
Mon Mar 16, 2026 • 22:43:04 IST (17:13:04 UTC)
Realtime + Admin

feat(realtime,admin): unblock admin actions during processing; migrate polling to SSE; stabilize gallery refresh/caching

Major realtime and concurrency upgrade: moved key status paths to SSE, hardened gallery refresh behavior, reduced request load, and removed backend bottlenecks so admin delete/fetch operations stay usable even while videos are processing.

View Commit 042d57c

Realtime + Stability Changes

SSE-first status and tracker updates

Shifted realtime status delivery to SSE across user/admin pages, added authenticated tracker stream, and retained resilient fallback polling with reconnect + heartbeat behavior.

Smarter gallery/network behavior

Prevented blank gallery flashes on transient errors by preserving last-good data, added conditional fetches (ETag/If-None-Match), request de-duplication, and adaptive passive/aggressive polling transitions.

Thumbnail render + cache hardening

Improved media UX with lazy thumbnail loading, cache warming, deterministic signature-based rerender checks, and service-worker runtime caching for external Drive thumbnail requests.

Admin concurrency unblocked

Enabled EventSource-compatible auth token transport for protected streams and removed backend responsiveness bottlenecks by offloading blocking Drive/GitHub I/O, so admin delete/fetch actions can run during active processing.

Operational polish

Reduced noisy backend logging for high-frequency status/event endpoints while preserving existing auth validation, status semantics, and failure fallbacks.

Files touched (6 files, +794 / -285)

  • admin.html — +60 / -18
  • admin_tracker.html — +106 / -7
  • gh.py — +158 / -156
  • index.html — +292 / -87
  • service-worker.js — +36 / -2
  • tg.py — +142 / -15
Mon Mar 16, 2026
Design Overhaul

Complete site-wide UI revamp and new documentation page

Built documentation from scratch with a premium dark-mode design system. Applied new visual language (mesh backgrounds, standard headers/footers) across all HTML pages, and added universal scaling fixes.

View Commit fb058aa

Design Changes

New Documentation

Built documentation.html completely from scratch, establishing a new premium aesthetic.

Universal Scaling Fix

Implemented a custom scaling function ensuring visual consistency and perfect aspect ratios across all screen sizes and devices.

Unified Components

Standardized page headers, titles, mesh/glow backgrounds, and introduced a unified global footer utilizing Lucide icons across all instances.

Files touched (6 files, +2266 / -1873)

  • admin.html — +293 / -46
  • admin_tracker.html — +248 / -130
  • changelogs.html — +80 / -0
  • documentation.html — +1167 / -1498
  • index.html — +148 / -4
  • playground.html — +330 / -195
Sun Mar 15, 2026
Runtime Reliability

fix(async): restore web video processing by isolating backend task loop

Introduced deterministic backend async scheduling so web-triggered processing and deletion tasks run independently from Telegram lifecycle events.

View Commit 0d10478

Execution Layer Updates

Dedicated web async loop

Created a background asyncio event loop in tg.py for web-triggered processing/deletion tasks to avoid dependence on Telegram polling loop lifecycle.

Coroutine failure visibility

Added done-callback exception logging for run_coroutine_threadsafe futures so failed operations are no longer silent.

API behavior preserved

Maintained the existing web API contract while improving scheduling determinism and shutdown safety for the backend runtime.

Files touched (1 file, +30 / -4)

  • tg.py — +30 / -4
Sun Mar 15, 2026
Stability Fix

fix(status): stop delete-status flashing and fix localhost live-status polling

Patched stale status replay and endpoint mismatch issues that caused repeated delete-message flashes and false "live status" errors in local development.

View Commit 7d799f5

Operational Fixes

Deletion status reset hardening

Introduced race-safe status resets in tg.py so delayed timers can’t overwrite fresh status updates from new jobs.

Localhost polling correction

Fixed frontend status polling in index.html and made backend routing query-tolerant via parsed path matching, preventing GET /status false failures in Live Server mode.

Cache invalidation + anti-stale status

Updated service-worker.js to bypass caching for dynamic API routes (including /status) and added strict no-cache headers on API responses.

Files touched (3 files, +102 / -37)

  • index.html — +51 / -27
  • service-worker.js — +13 / -1
  • tg.py — +38 / -9
Mon Feb 23, 2026
Visual Overhaul

Complete UI redesign and performance optimization

A massive frontend transformation standardizing the app on a modern, dark, AI-centric aesthetic while aggressively stripping out performance-heavy CSS.

View Commit fb6fe23

Architecture Changes

The Redesign

  • Removed password generator entirely.
  • Implemented modern AI-tools inspired dark theme with pitch black backgrounds.
  • Removed compact mode; standardized on full-screen layout only.
  • Added orange accent borders to upload areas.
  • Changed subtitle font to monospace for a tech aesthetic.

Performance

  • Eliminated heavy blur animations and background glow elements causing GPU lag.
  • Converted @apply directives to regular CSS.
  • Fixed 15+ CSS syntax errors.
  • Removed will-change memory bloat.

Files touched (1 file, +978 / -488)

  • index.html — +978 / -488
Mon Feb 23, 2026
Backend Core

Resolve yt-dlp playlist filename & dot-in-title output path bugs

Critical backend patches fixing file truncation issues on Linux, broken extensions from complex YouTube titles, and adding aggressive frontend polling.

View Commit 81b10a1

Code Diagnostics

tg.py dry-run

Added --no-playlist and --restrict-filenames. Forced script to take only the first line of output, and truncated file stems to >180 bytes to strictly adhere to the Linux 255-byte limit.

tg.py run

Passed the full .mp4 path directly to ot.py --output_video instead of stripping extensions. Previously, titles with dots (e.g., "R.D. Burman") caused splitext to drop segments, breaking the upload chain.

gh.py & App

Added an early os.path.exists guard to fail missing files fast without hanging the server. On the frontend, added an immediate pollForNewVideos() call with an aggressive 3-minute retry loop to bypass GitHub Pages CDN propagation delays.

Files touched (3 files, +227 / -33)

  • gh.py — +4 / -0
  • index.html — +12 / -0
  • tg.py — +211 / -33
Fri Jan 16, 2026
Mobile Experience

Playground Mobile Fixes

A massive accessibility update for mobile users interacting with the AI Playground. It introduces logical scaling for the detection boxes so they aren't massive on small screens, and fixes camera switching bugs on Android/AOSP devices.

View Commit d9a8661

Developer Diagnostics

Detection Scaling

Line width now actively scales based on canvas size. Font sizes and box corner radii scale proportionally, preventing overlapping blobs on phones.

Hardware Targeting

Camera detection improved to use index fallback (cam0 = rear, cam1 = front) specifically resolving stream freezing for AOSP hardware limits.

Files touched (2 files, +725 / -38)

  • index.html — +238 / -7
  • playground.html — +487 / -31
Fri Jan 16, 2026
Major Feature

Add AI Playground page with custom tracker options

Creation of the dedicated playground.html environment introducing live client-side tracking and advanced server-side YOLOv8 configs.

View Commit 69b7e6b

Architecture Changes

Neural Cam

Real-time browser-based object detection using TensorFlow.js + COCO-SSD.

  • Live bounding box overlays
  • Active readouts for FPS, inference time, & GPU
  • Video recording (WebM export)
  • Mirrored video with un-mirrored text labels

Tracker Studio

Advanced UI for server-side YOLOv8 processing configs connecting to tg.py.

  • Filter from 80 distinct COCO classes
  • Confidence threshold slider adjustments
  • Backend accepts allowed_classes natively

Files touched (3 files, +1291 / -6)

  • index.html — +3 / -0
  • playground.html — +1243 / -0
  • tg.py — +45 / -6
Thu Jan 15, 2026
System Architecture

Comprehensive ROI Selection Engine

A monumental feature allowing users to draw a "Region of Interest" directly on the video frame before processing. We implemented a secure server-side preview system that generates snapshots via FFmpeg for both uploaded files and YouTube URLs, storing them temporarily in memory.

View Commit 39279d2

Developer Diagnostics

Session Cache Management

Added /get_video_preview endpoint. The backend maintains active preview sessions that automatically clean up abandoned preview_temp files after 5 minutes using a 60-second polling scheduler thread.

Canvas Mapping

The UI handles mapping the user's drawn 2D-context rectangle directly to the original video dimensions, bypassing CSS distortion issues across portrait/landscape resolutions.

Files touched (3 files, +1693 / -94)

  • index.html — +1005 / -61
  • ot.py — +159 / -0
  • tg.py — +529 / -33
Thu Jan 15, 2026
Security

Watermark Output Videos

Implemented a small unobtrusive watermark to all server-processed videos. This acts as a protective measure to ensure content processed by our models isn't copied or falsely claimed by unknown external sources.

View Commit cd3bfee

OpenCV VideoWriter logic updated in core tracking module.

Files touched (1 file, +88 / -4)

  • ot.py — +88 / -4
Tue Jul 1, 2025
Open Source

Backend Fully Public

Taking the next major step by fully releasing the backend code to the public. This allows developers to self-host the Flask and YOLOv8 pipeline locally instead of relying solely on our servers.

View Commit ef40f67

tg.py and associated tracking logic open-sourced to public.

Files touched (7 files, +3248 / -0)

  • admin_auth.py — +157 / -0
  • admin_hash_gen.py — +79 / -0
  • config.yml — +72 / -0
  • gh.py — +537 / -0
  • ot.py — +842 / -0
  • tg.py — +1323 / -0
  • web_server_public.py — +238 / -0
Sun Jun 15, 2025
The Beginning

Initial Public Release

The absolute genesis of Project GlyphMotion. This marks the day the repository was established, launching the initial static Progressive Web App infrastructure and paving the way for everything to come.

View Commit 4c42c66

Developer Diagnostics

Infrastructure Setup

Configured GitHub Pages static routing via CNAME records and pushed the core UI logic mapping to our custom domains.

Files touched (4 files, +6365 / -0)

  • admin.html — +373 / -0
  • admin_tracker.html — +1443 / -0
  • documentation.html — +1564 / -0
  • index.html — +2985 / -0

End of git history