v1.0 — Now Available

The 2D engine
built for Flutter

Professional canvas engine with pressure-sensitive brushes, scene graph, real-time collaboration, and 60 FPS GPU rendering.

↑ Interactive — try drawing above

Scroll
6
Pro Brushes
60
FPS Rendering
13+
Node Types
234K+
Lines of Code

Capabilities

Everything you need to build

A complete engine — not a widget. Drawing, rendering, collaboration, and export in one package.

6 Pro Brushes

Fine Pen, Thick Marker, Soft Pencil, Calligraphy Nib, Technical Pen, and Highlighter — a fully programmable brush engine with GPU-accelerated rendering.

Scene Graph

13+ typed nodes, hierarchical transforms, spatial indexing with R-tree, and O(log n) viewport culling.

Real-time Collaboration

Multi-user editing with CRDT vector clock, cursor presence, element locking, and offline queue with automatic replay.

60 FPS Performance

Tile-cached rendering, LOD cross-fade, frame budget manager, object pooling, and isolate rasterization for complex scenes.

Zero Vendor Lock-in

Pure dependency injection via FlueraCanvasConfig. No Firebase, no backend, no platform-specific code required.

Multi-format Export

PNG, JPEG, WebP with configurable DPI, SVG vector export, and PDF output. Per-node, selection, or full canvas.

Brush Toolkit

6 professional brushes

A fully programmable brush engine — pressure dynamics, tilt, velocity curves, ink physics, textures, and stamp dynamics. All GPU-accelerated.

Fine Pen

Precise, clean lines for detailed work

Thick Marker

Bold, expressive strokes

Soft Pencil

Natural graphite feel with texture

Calligraphy Nib

Angle-sensitive elegant writing

Technical Pen

Consistent width for diagrams

Highlighter

Semi-transparent for annotations

Fully programmable: pressure curves, tilt & velocity, ink physics, textures, stamp dynamics, stabilizer, and Display P3 color.

Quick Start

Five lines to a
professional canvas

Drop FlueraCanvasScreen into your widget tree. Add a storage adapter for persistence. That's it — you get an infinite canvas with 12 brushes, undo/redo, zoom/pan, and auto-save out of the box.

1

flutter pub add fluera_engine

2

Create a FlueraCanvasConfig with your adapters

3

Ship your app 🚀

main.dart
import 'package:flutter/material.dart';
import 'package:fluera_engine/fluera_engine.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  // Zero-config local persistence
  final storage = SqliteStorageAdapter();
  await storage.initialize();

  runApp(MaterialApp(
    theme: ThemeData.dark(useMaterial3: true),
    home: FlueraCanvasScreen(
      config: FlueraCanvasConfig(
        layerController: LayerController(),
        storageAdapter: storage,
      ),
    ),
  ));
}

Architecture

Modular by design

Dependency injection means every feature is optional. Activate only what you need.

FlueraCanvasScreen
  └── FlueraCanvasConfig
        ├── storageAdapter      → Local persistence (SQLite)
        ├── cloudAdapter        → Cloud sync (any backend)
        ├── realtimeAdapter     → Real-time collaboration
        ├── pdfProvider         → PDF rendering
        ├── permissions         → Access control
        ├── presence            → User presence
        └── voiceRecording      → Audio notes

Ready to build something extraordinary?

Start building with Fluera Engine today. Free and open-source under the BSD 3-Clause License.