THE TEACHER POINT

Standalone — Lottie Import, Preview, Render & Export Pipeline

This section documents the standalone animation capabilities of yoAnime Studio — the part that runs entirely on Windows without requiring PowerPoint. Everything described here is handled by the internal WPF application through SkiaSharp, FFmpeg, and custom service layers.


1. Overview

yoAnime Studio is a local, offline‑first animation environment designed for importing, previewing, analyzing, and exporting Lottie animations.
The standalone engine consists of:

This page explains how each of these components works internally.


2. Lottie Import Pipeline

Responsible class: LottieAssetService

When a user drops or opens a .json Lottie file, the import workflow does the following:

2.1 File Loading

2.2 Metadata Extraction

The importer extracts:

2.3 Validation Steps

If the file loads successfully, it enters the Project Library with its hash and metadata.


3. Real‑Time Preview Pipeline

Responsible class: SkiaLottiePreviewService

This component powers the live preview panel you see in the Studio window.

3.1 Skottie Animation Engine

Uses SkiaSharp’s Lottie module (Skottie) for:

3.2 GPU‑Assisted Rendering

3.3 Frame-Accurate Inspection

Every seek or scrub computes a new frame:

This enables pixel‑perfect inspection even for high‑resolution animations.


4. Frame Rendering Pipeline (Export Path)

Responsible Classes:

When the user exports MP4/GIF/WebM, yoAnime must first render individual PNG frames.

4.1 Render Strategy Layer

AnimationRenderStrategy chooses between:

4.2 Skia Frame Rendering

frame_00001.png  
frame_00002.png  
frame_00003.png  
...

4.3 External Renderer (Optional)

If an external animation tool is configured:


5. Export Pipeline (MP4, GIF, WebM)

Responsible class: FfmpegTranscodeService

Once frames are rendered, yoAnime invokes FFmpeg to generate final export formats.


5.1 MP4 Export


5.2 WebM Export


5.3 GIF Export

GIF rendering requires palette optimization:

  1. Generate palette (palette.png)
  2. Use palette during GIF creation
  3. Apply dithering
  4. Optimize frame delays

The pipeline ensures color accuracy while keeping filesize reasonable.


5.4 Pipeline Progress Parsing

FFmpeg progress is parsed from standard output:


6. Export Queue System

Responsible class: ExportJobQueueService

The job queue enables:


6.1 Job Lifecycle

Each export job moves through:

  1. Queued
  2. Rendering frames
  3. Transcoding
  4. Completed
  5. Failed

Jobs are stored with:


6.2 Concurrency


7. Project Library

Responsible class: AnimationStudioProjectService

The project library:


7.1 Storage Structure

%LOCALAPPDATA%/yoAnime/yoAnimeStudio/
    projects.json
    samples/
    temp/
    exports/

7.2 What’s Stored Per Project


8. File Paths & Storage System

Responsible class: AnimationStudioPaths

Temporary data example:

%LOCALAPPDATA%/yoAnime/yoAnimeStudio/temp/ae4d12fa3/

Export output example:

%LOCALAPPDATA%/yoAnime/yoAnimeStudio/exports/sample_loop.mp4

9. Standalone Workflow Summary

Lottie JSON → LottieAssetService → Metadata/Validation
           → SkiaLottiePreviewService → Live Preview
           → AnimationRenderStrategy → Frame Renderer (PNG)
           → FfmpegTranscodeService → MP4/GIF/WebM
           → ExportJobQueueService → Multi‑Job Processing
           → AnimationStudioProjectService → Project Library

This entire workflow runs locally, does not require internet, and does not require PowerPoint.

Exit mobile version