A modern 3D scene editor and prototyping tool built with React, Three.js, and Tauri. Create interactive 3D scenes with professional lighting systems, import 3D models (GLTF, OBJ, FBX), and export complete scenes. Perfect for game prototyping, architectural visualization, product design, and creative 3D projects.
- 3D Canvas: Interactive 3D viewport with React Three Fiber and real-time rendering
- Object Management: Add, select, move, rotate, and scale 3D objects with transform gizmos
- Property Panel: Edit object properties (position, rotation, scale, color, visibility)
- Scene Hierarchy: Visual scene tree with object organization and selection
- Lighting System: Professional lighting controls with multiple light types and presets
- Model Import: Support for GLTF, OBJ, and FBX 3D model formats
- Grid System: Visual grid for precise positioning with snap-to-grid functionality
- File Operations: Save and load scene files in JSON format with auto-save
- Camera Controls: Orbit controls for navigation (pan, zoom, rotate) with camera bookmarks
- Modern UI: Shadcn/ui components with dark theme and responsive design
- Toolbar: Intuitive tool selection and object creation with keyboard shortcuts
- Cube: Basic box geometry with customizable dimensions
- Sphere: Spherical geometry with adjustable radius and segments
- Plane: Flat plane geometry for floors, walls, and surfaces
- Imported Models: GLTF, OBJ, and FBX 3D models with automatic scaling and positioning
- Select (V): Select and manipulate objects with multi-selection support
- Move (G): Translate objects in 3D space with gizmo handles
- Rotate (R): Rotate objects around pivot points with rotation gizmos
- Scale (S): Scale objects uniformly or per-axis with scale gizmos
- Add: Place new objects and imported models in the scene
- Lighting: Comprehensive lighting controls with real-time preview
Download the latest release for your platform from the Releases page.
OS: Windows 11+ / macOS 12+ / Ubuntu 20.04+ | RAM: 8GB | Storage: 2GB SSD | Display: 1920x1080 | GPU: OpenGL 3.3+ compatible
Note: You may see warnings from tools such as SmartScreen, as we do not yet have the financial means to sign the code.
- Launch Rengine: Open the application
- Choose Template: Select from scene templates (Basic, Lighting, Character, Outdoor, etc.)
- Create Scene: Start with a pre-configured scene or create empty
- Add Objects: Use the toolbar to add geometric primitives or import 3D models
- Manipulate: Select objects and use transform tools with gizmos
- Lighting: Apply lighting presets or customize individual lights
- Save/Load: Export scenes as JSON files with auto-save
Rengine includes several pre-configured scene templates to get you started:
- Basic Scene: Simple cube with default lighting
- Lighting Showcase: Multiple objects demonstrating different lighting techniques
- Character Scene: Setup optimized for character modeling and posing
- Outdoor Scene: Large terrain with realistic outdoor lighting
- Neon Scene: Colorful urban environment with neon lighting
- Dramatic Scene: High-contrast lighting for cinematic shots
- Orbit: Left-click and drag to rotate camera
- Pan: Middle-click and drag to pan
- Zoom: Mouse wheel to zoom in/out
- Focus: Double-click object to focus camera
- Click objects in the viewport to select them
- Hold
Ctrlfor multi-selection - Press
Escapeto deselect all
- Move (G): Translate objects along axes with gizmo handles
- Rotate (R): Rotate objects around pivot points with rotation gizmos
- Scale (S): Resize objects with uniform or axis-specific scaling
- Object Tree: Visual representation of all scene objects
- Parent/Child Relationships: Organize objects in hierarchies
- Selection Management: Click to select, drag to reorder
- Visibility Toggle: Show/hide objects and entire hierarchies
- Use the property panel to adjust:
- Position (X, Y, Z coordinates)
- Rotation (Euler angles)
- Scale (Width, Height, Depth)
- Color and materials
- Visibility and rendering options
Rengine features a comprehensive lighting system with professional-grade controls:
- Ambient Light: Overall scene illumination
- Directional Light: Sun-like lighting with shadows
- Point Light: Omnidirectional light sources with distance falloff
- Spot Light: Cone-shaped lighting with adjustable angles
- Hemisphere Light: Sky/ground ambient lighting
- Default: Basic ambient and directional lighting
- Studio: Soft, even lighting for product photography
- Outdoor: Bright sunlight with sky lighting
- Indoor: Warm indoor lighting with multiple sources
- Sunset: Golden hour lighting with warm tones
- Dramatic: High contrast lighting with strong shadows
- Neon: Colorful neon-style lighting
- Moonlight: Cool blue moonlight
- Real-time shadow casting with customizable parameters
- Color temperature and intensity controls
- Position and target positioning for directional/spot lights
- Distance and decay settings for realistic falloff
- Shadow bias, map size, and radius adjustments
Import 3D models in industry-standard formats:
- GLTF/GLB: Modern 3D format with materials and animations
- OBJ: Wavefront OBJ format with MTL material support
- FBX: Autodesk FBX format for complex scenes
Features include automatic scaling, positioning, and progress tracking during import.
| Shortcut | Action |
|---|---|
V |
Select tool |
G |
Move tool |
R |
Rotate tool |
S |
Scale tool |
C |
Add cube |
Shift+C |
Add sphere |
P |
Add plane |
Ctrl+A |
Select all objects |
Escape |
Clear selection |
Delete |
Delete selected objects |
Ctrl+S |
Save scene |
Ctrl+O |
Open scene |
Ctrl+N |
New scene |
Ctrl+Shift+I |
Import 3D model |
- React 19 with TypeScript and TanStack Router
- React Three Fiber & Drei for 3D rendering and controls
- Zustand for state management with middleware
- Shadcn/ui components built on Base UI primitives
- Tailwind CSS 4 with custom design system
- Vite for build tooling and hot reload
- Biome for code quality and formatting
- Tauri 2 for cross-platform desktop applications
- Rust for native performance and security
- Native file system access for scene persistence
- @react-three/fiber: React renderer for Three.js
- @react-three/drei: Useful helpers for React Three Fiber
- three: 3D graphics library
- zustand: Lightweight state management
- @tauri-apps/api: Tauri API bindings
Required Software:
- Node.js 22.0+
- Bun 1.3.5+ (recommended package manager)
- Rust 1.92.0+
- Git 2.30+
Platform-Specific Requirements:
- Windows: Windows 10 version 1903+ (build 18362+)
- macOS: macOS 10.15+ (Catalina or later)
- Linux: Ubuntu 18.04+, CentOS 7+, or equivalent
# 1. Clone the repository
git clone https://github.com/reliverse/rengine.git
cd rengine
# 2. Install dependencies (Bun is ~3x faster than npm/yarn)
bun install
# 3. Start development server (opens Tauri app automatically)
bun start
# 4. Build for production
bun run build
# 5. Create distributable packages for all platforms
bun run tauri build# Run the complete test suite
bun test
# Run tests in watch mode during development
bun test --watch
# Check code quality and formatting (Biome + Ultracite)
bun check
# Auto-fix formatting and linting issues
bun format
# Type checking
bun typecheck| Command | Description |
|---|---|
bun start |
Start development server with Tauri |
bun dev |
Start Vite dev server only |
bun build |
Build for production (frontend only) |
bun app:build |
Build distributable packages |
bun app:pub |
Build and publish with version bump |
bun tests |
Run Vitest test suite |
bun check |
Full quality check (lint+format+type) |
bun format |
Auto-fix formatting with Biome |
bun lint |
Run Biome linter with fixes |
bun typecheck |
TypeScript type checking |
bun uc |
Run Ultracite quality checks |
- Routing: TanStack Router with file-based routing
- 3D Rendering: React Three Fiber with Three.js
- State Management: Zustand for scene and UI state
- UI Components: Shadcn/ui built on Radix UI primitives
- Styling: Tailwind CSS with custom design system
- Framework: Tauri 2 for cross-platform desktop applications
- File Operations: Native filesystem access for scene save/load
- Security: Sandboxed execution with permission-based access
- Component-based architecture
- State-driven UI updates
- Event-driven 3D interactions
- File-based scene serialization
- Undo/Redo functionality with command history
- Copy/Paste objects and hierarchies
- Texture and material system with PBR support
- Animation timeline and keyframe system
- Export to various formats (GLTF, OBJ, FBX)
- Plugin system with JavaScript/TypeScript API
- Collaborative editing with real-time synchronization
- Advanced material editor with node-based workflow
- Physics simulation with collision detection
- Particle systems and visual effects
- Terrain editor with heightmaps
- Audio system integration
- Scriptable components and behaviors
- Asset library with search and organization
- Scene graph (entities + parent/child)
- Deterministic transforms (local / world)
- Stable IDs for all entities
- Scene serialization (versioned)
- Scene instancing
- Scene hot-reload
- Entity = ID + components
- Components = pure data
- Systems = logic
- Enable/disable entities & components
- Runtime-safe add/remove components
- Asset registry (UUID β path)
- Reference counting / lifetime
- Import pipeline (source β runtime)
- Asset cache
- Asset dependency tracking
- Renderer API (not Three.js-bound)
- Camera system
- Multiple viewports
- Render layers / masks
- Debug rendering layer
- Mesh system
- Material system (PBR)
- Lighting (forward minimum)
- Shadows
- Skybox / environment map
- Post-processing stack
- Keyboard / mouse / gamepad
- Action mapping (not key-based)
- Input contexts / layers
- Rebindable controls
- Scriptable components
- Lifecycle hooks
- Hot reload scripts
- Script sandboxing
- Editor β runtime parity
- Collision shapes (2D/3D)
- Broadphase / narrowphase
- Rigid bodies
- Triggers
- Raycasts
- Physics layers & masks
- Inspector auto-generated from components
- Gizmos per component
- Scene play-in-editor
- Live editing during play
- Undo/Redo everywhere
- Entity inspector
- Runtime console
- Visual debug (colliders, rays)
- Performance overlays
- Error stack traces with entity context
We welcome contributions! Rengine is an open-source project that thrives on community involvement.
- Bug Reports: Found a bug? Open an issue
- Feature Requests: Have an idea? Start a discussion
- Code: Fix bugs, add features, or improve performance
- Documentation: Help improve docs or tutorials
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/your-username/rengine.git - Create a feature branch:
git checkout -b feature/your-feature-name - Set up development environment:
bun install && bun start - Make your changes following our guidelines
- Test thoroughly:
bun test && bun check - Commit with clear messages:
git commit -m "feat: add amazing new feature" - Push to your branch and open a Pull Request
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.