Power3D

pub package Language License: MIT

A powerful, industry-level Flutter plugin for rendering 3D models using Babylon.js. Designed for ease of use, extensibility, and seamless integration into any architecture.

pub.dev | Repository | Documentation | Examples

📸 Showcase

Core Viewer Advanced Lighting Material Shading
Main View Lighting Engine PBR Overrides
Scene Graph Part Inspector Metadata Systems
Hierarchy Tree Mesh Explorer GLTF Extras
Texture Management Selection System Visibility Controls
Bitmap extraction Mesh highlighting Per-part Toggles
Interactive Points Annotation Data Bounding Boxes
Hotspot Logic Detail Cards Selection Feedback
Skeletal System Alternative Scene
Dynamic Animation Secondary View

Features

  • 🚀 Architecture Agnostic: Uses a Controller pattern, compatible with Riverpod, Bloc, Provider, GetX, or plain setState.
  • 📦 Versatile Loading: Load models from Assets, Network, or local Files.
  • 🎮 Advanced Controls:
    • Auto-rotation with custom speed and direction.
    • Automatic stop timer for rotation.
    • Zoom limits (min/max) and toggles.
    • Position locking (enable/disable panning).
  • 🎬 Animation Control:
    • Play, pause, stop, and resume skeletal animations.
    • Real-time speed and loop configuration.
    • Support for multiple simultaneous animations.
  • Managed Screenshots: Capture and automatically save screenshots to a specified path.
  • 🎨 Scene Inspection:
    • Inspector Hierarchy: Full scene graph (Meshes, Cameras, Lights) and Materials view.
    • Metadata Extraction: Fetch raw GLTF extras and Babylon metadata.
    • 3D Bounding Boxes: Customizable wireframe boxes and spheres for selection feedback.
    • Visibility Handling: Per-part visibility controls and batch actions.
  • 🎨 Customizable UI: Provide your own loading and error widgets.

Quick Start

1. Add dependency

dependencies:
  power3d: ^2.3.0

2. Basic Setup

Power3D supports Android, iOS, Web, Windows, macOS, and Linux.

Platform Setup Requirement
Android Internet & Cleartext permissions
iOS / macOS App Sandbox Entitlements
Windows WebView2 Runtime
Web No special config (CORS handled)
Linux WebKit2GTK installation

See the full Platform Setup Guide for detailed instructions.

3. Usage

import 'package:power3d/power3d.dart';

// 1. Create a controller
final controller = Power3DController();

// 2. Add the widget
Power3D.fromAsset(
  'assets/my_model.glb',
  controller: controller,
);

// 3. Control the view
void rotate() {
  controller.updateRotation(
    enabled: true,
    speed: 1.5,
    stopAfter: Duration(seconds: 5),
  );
}

Documentation

Find detailed guides and API references in the doc folder:

🚀 Getting Started

🎮 Controls & Interaction

🎨 Advanced Scene Manipulation

🛠 Technical Reference

Example

Check the example folder for a complete demonstration of all features.

Libraries

power3d