Offline design studio for Hytale World Generation V2. Visual node editor, live terrain preview, and validated JSON export — no server required.
Releases | Discord | Changelog
Node-Based Editor — Drag-and-drop all 200+ V2 types with category-colored nodes. Auto-layout via dagre, minimap navigation, node search, copy/paste, snap-to-grid, and full undo/redo with descriptive history labels.
Live Preview — Real-time 2D heatmaps with contour lines, cross-sections, and position overlays. 3D voxel heightfield preview with SSAO post-processing. Five colormaps (Blue-Red, Grayscale, Terrain, Viridis, Red-Black) with configurable bounds.
Comparison View — Side-by-side before/after preview for iterating on terrain changes. See exactly what your edits do without leaving the editor.
Biome Editor — Edit Terrain, Material, Pattern, Position, and Prop sections within a single biome file. Per-section undo history, noise range editor for biome boundaries, and a rich dashboard with material layer overview and prop summary.
Curve Editor — Interactive canvas with draggable control points for Manual curves. Read-only computed previews for all built-in types (SquareBump, InverseLerp, etc.). Snap-to-grid, interpolation modes, presets, and mini curve previews in node bodies.
Material Layers — Visual stack editor for material providers with layer ordering and full V2 SpaceAndDepth specification support.
Template System — 10 bundled templates (Void, Forest, Forest Hills, Desert, Mountains, Floating Islands, Eldritch Spirelands, Shattered Archipelago, Tropical Pirate Islands) plus snippet templates for common node patterns. Create and share your own.
Schema Validation — Real-time diagnostics on type errors, missing fields, and invalid ranges. Error, warning, and info badges appear directly on nodes so you know exactly what to fix before exporting.
Bridge Integration — Connect to a running Hytale server and push exported asset packs directly. Design offline, deploy in one click.
Full V2 Coverage — 68 density types, 14 material providers, 19 curves, plus patterns, positions, props, scanners, vectors, environments, assignments, tints, block masks, and world structures.
Offline-First — No server, no internet, no telemetry. Under 15MB install. All data stays on your machine.
- Download the latest release from Releases
- Open TerraNova, pick a template or start from scratch
- Design your worldgen using the node editor and live preview
- Export and drop the JSON files in your server's
mods/folder
macOS: App Won't Open / "Unverified Developer"
TerraNova is not yet signed with an Apple Developer certificate. macOS may block the app on first launch. Use one of these methods:
Method 1 — Right-click Open (recommended)
- Right-click (or Control-click) TerraNova in Applications
- Select "Open" from the context menu
- Click "Open" in the dialog that appears
Method 2 — Terminal command
xattr -cr /Applications/TerraNova.appThen launch normally.
Method 3 — System Settings
- Open System Settings → Privacy & Security
- Scroll to the Security section — you'll see a message about TerraNova being blocked
- Click "Open Anyway"
These steps are only needed once. Subsequent launches will work normally.
| Shortcut | Action |
|---|---|
Ctrl+Z / Ctrl+Y |
Undo / Redo |
Ctrl+S |
Save |
Ctrl+F |
Search nodes |
Ctrl+A |
Select all |
Delete |
Delete selected |
Ctrl+D |
Duplicate selected |
Ctrl+L |
Auto-layout graph |
Space (drag) |
Pan canvas |
Scroll |
Zoom |
All shortcuts
| Shortcut | Action |
|---|---|
Ctrl+N |
New file |
Ctrl+O |
Open file |
Ctrl+Shift+S |
Save as |
Ctrl+E |
Export JSON |
Ctrl+B |
Toggle sidebar |
Ctrl+P |
Toggle preview |
Ctrl+G |
Toggle grid |
Ctrl+M |
Toggle minimap |
Escape |
Deselect / close dialog |
| Layer | Technology |
|---|---|
| Framework | Tauri 2 |
| Frontend | React 19 + TypeScript |
| Node Editor | @xyflow/react (React Flow) |
| 3D Preview | React Three Fiber + Three.js |
| State | Zustand |
| Styling | Tailwind CSS |
| Build | Vite with code-split chunks |
| Backend | Rust |
| Noise | fastnoise-lite |
- O(1) Node Rendering —
React.memowith hoisted handle arrays, so only changed nodes re-render (not all 200) - Instant Undo/Redo — History snapshots restored by reference, under 1ms even at 200 nodes
- Lazy 3D Loading — Three.js + post-processing (~1.1 MB) loaded on demand, keeping initial load at ~580 KB
- Bounded Memory — History caps (50 global / 30 per-section) and LRU file cache eviction (10 files)
- Chunk Splitting — Vite splits Three.js, ReactFlow, and dagre into separate chunks for parallel loading
TerraNova uses Tauri instead of Electron — baseline memory is ~80-120 MB (system WebView) vs ~300-500 MB (bundled Chromium).
System Requirements
Basic editing: up to ~50 nodes, 2D heatmap preview, 1-2 files open
| Component | Spec |
|---|---|
| CPU | Dual-core, 2.0 GHz (Intel i3 8th gen / Ryzen 3 3200G / Apple M1) |
| RAM | 4 GB |
| GPU | Integrated with WebGL 2.0 (Intel UHD 620 / AMD Vega 3) |
| Storage | 200 MB free |
| Display | 1280x720 |
| OS | Windows 10 21H2+ / macOS 11+ / Ubuntu 22.04+ |
Full workflow: 100-200 nodes, 3D voxel preview, split view, 5+ biome sections
| Component | Spec |
|---|---|
| CPU | Quad-core, 3.0 GHz (Intel i5 10th gen / Ryzen 5 3600 / Apple M1) |
| RAM | 8 GB |
| GPU | Dedicated with 2GB VRAM or strong integrated (GTX 1050+ / Iris Xe / Apple M1) |
| Storage | SSD |
| Display | 1920x1080 |
Prerequisites & setup
Requirements: Node.js 20+, pnpm 9+, Rust 1.77+
# Install frontend dependencies
pnpm install
# Launch in development mode (opens app window with hot reload)
pnpm tauri dev# Build production bundle
pnpm tauri build
# Output: src-tauri/target/release/bundle/Project structure
TerraNova/
├── src/ # React frontend (TypeScript)
│ ├── components/ # UI components (editor, preview, layout, home)
│ ├── nodes/ # React Flow node components per V2 category
│ │ ├── density/ # 68 density function node types
│ │ ├── material/ # 14 material provider node types
│ │ ├── curves/ # 19 curve node types
│ │ └── shared/ # BaseNode, handle registry, layout
│ ├── schema/ # TypeScript type definitions for V2 assets
│ ├── stores/ # Zustand state stores
│ ├── hooks/ # Custom React hooks
│ └── utils/ # Graph conversion, layout, colormaps
├── src-tauri/ # Tauri + Rust backend
│ └── src/
│ ├── commands/ # Tauri command handlers
│ ├── schema/ # Rust V2 schema types (serde)
│ ├── noise/ # Density function evaluator
│ └── io/ # Asset pack I/O and template system
├── templates/ # Bundled world generation templates
└── public/ # Static assets
- Releases — Downloads
- Changelog — Version history
- Discord — Support & community
- Issues — Bug reports & features
- HyperSystemsDev — Organization
TerraNova is developed with assistance from AI tooling. We believe in being upfront about how this project is built — read the full breakdown in our AI Transparency & Usage Disclaimer.
Part of the HyperSystems suite: HyperPerms | HyperHomes | HyperFactions | TerraNova
