nocterm_3d

January 6, 2026 ยท View on GitHub

A declarative 3D renderer for terminal using Nocterm.

Experimental: This project is in early development and APIs may change.

Demo

Features

  • 3D primitives (cubes, pyramids, custom shapes)
  • Scene graph with camera system
  • Multiple render modes (wireframe, solid, braille)
  • Particle systems
  • Animation support
  • Shading and depth-based rendering

Usage

import 'package:nocterm/nocterm.dart';
import 'package:nocterm_3d/nocterm_3d.dart';

void main() async {
  await runApp(const RotatingCubeDemo());
}

class RotatingCubeDemo extends StatelessComponent {
  const RotatingCubeDemo({super.key});

  @override
  Component build(BuildContext context) {
    return AnimatedScene3D(
      duration: const Duration(seconds: 4),
      camera: Camera.orbit(distance: 4, elevation: 0.3),
      builder: (t) {
        final angle = t * 2 * 3.14159;
        return [
          SceneNode.rotated(angle * 0.5, angle, 0, shape: Cube()),
        ];
      },
    );
  }
}

Requirements