Skip to content

v1.7.8

Choose a tag to compare

@github-actions github-actions released this 19 Oct 01:42
· 33 commits to main since this release

DrawMotion Changelog

All notable changes to this project are documented in this file.

This project adheres to Semantic Versioning (MAJOR.MINOR.PATCH).


[1.7.8] - 2026-10-17

Initial Official Open-Source Release

This release establishes the baseline open-source architecture of DrawMotion with a fully hardened startup lifecycle, multi-algorithm vector animation engine, and cross-platform build pipelines.

Core Engine and Drawing Systems

  • Physics-Based Handwriting Algorithms: Integrated five distinct mathematical stroke simulation models (Steady, Minimum Jerk, Natural Human, Organic Sketch, and Stop & Go) replicating realistic human handwriting dynamics.
  • Vector Path Tracing: Automatic parsing and sequential tracing of SVG vectors and raster images with dynamic stroke revelation (dashOffset animation).
  • Dual-Layer Anti-Aliased Typography: High-resolution display layer decoupled from stroke masks, ensuring crisp anti-aliasing even when rendering real-time drop shadows and glow effects.
  • Multitrack Timeline: Dynamic timeline with audio waveform rendering, audio scrubbing, and scene duration management.
  • Stateless Data Serialization: Memory-safe clipboard and scene persistence based on JSON serialization, eliminating pointer corruption and memory leaks across scene duplication.

Platform Stability and Fault Isolation

  • Native C++ Signal Trapping: Registered qInstallMessageHandler prior to QApplication instantiation to capture low-level Qt messages (qFatal, qCritical, qWarning) directly to persistent logs (%LOCALAPPDATA%\DrawMotion\Logs\qt_messages.log).
  • Python Fault Handler: Enabled unbuffered faulthandler directed to %LOCALAPPDATA%\DrawMotion\Logs\crash_faulthandler.log with module-level global handles.
  • Watchdog Circuit Breaker: Implemented a startup failure cap (max_allowed_failures = 3) to permanently prevent infinite restart loops.
  • Qt Plugin Bundling: Explicitly bundled Qt image and icon engines (imageformats, iconengines, sensible, multimedia) in Nuitka compilation to prevent segmentation faults during vector rendering.
  • Direct Public Updates: Configured automated update checking querying official releases from DMotionX/DrawMotion with fast parallel multi-stream downloads.