Skip to content

enimate/enimate-moonbit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

207 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Enimate Logo

Enimate

A cross-platform 2D animation tool built with MoonBit.

FeaturesArchitectureBuildingLicense


Overview

Enimate is a modern 2D animation editor, designed to run seamlessly across native desktop(Linux/macOS/Windows) and web browsers (WASM). Built with MoonBit's functional programming paradigm, it delivers high-performance animation capabilities through a clean, decoupled architecture.

Features

  • 🎨 Canvas & Rendering - Path-based drawing with Skia/CanvasKit backends
  • Effects System - Blur, shadow, color matrix, masks, and distortion filters
  • 🖱️ Interactive Tools - Mouse/keyboard input handling for precise control
  • 🎬 Animation Engine - Timeline-based keyframe animation with easing
  • 📁 File System - Cross-platform project save/load with caching
  • 🔊 Audio Support - Playback control with FFmpeg (native/WASM) and Web Audio (WASM)

Architecture

┌────────────────────────────────────────────────────────┐
│  Layer 1: Business Logic (MoonBit)                     │
│  - Canvas core, Effects, Animation, Timeline           │
├────────────────────────────────────────────────────────┤
│  Layer 2: API Abstractions (MoonBit)                   │
│  - RenderAPI, WindowInputAPI, FileSystemAPI            │
├────────────────────────────────────────────────────────┤
│  Layer 3: Platform Implementations                     │
│  - Native: Qt6 + Skia + FFmpeg + Platform APIs         │
│  - WASM: Qt6.wasm + CanvasKit + FFmpeg.wasm + Web APIs │
└────────────────────────────────────────────────────────┘

Building

Prerequisites: Qt6, Skia, FFmpeg, MoonBit toolchain

# Setup dependencies(Currently only works on Linux)
./scripts/setup_deps.sh
./scripts/setup_qt.sh
./scripts/setup_skia.sh
./scripts/setup_ffmpeg.sh

# Build native target
moon build --target native

# Build WASM target
moon build --target wasm

License

Apache-2.0


Made with ❤️ using MoonBit