- Total Tasks: 89
- Completed: 12
- In Progress: 1
- Not Started: 76
- Terrain Import: Successfully implemented complete terrain import with EXR displacement
- Layermap Support: Fixed layermap texture creation with proper material ID preservation
- Height Scale Discovery: Found terrain
heightScaleparameter in terrain preset files - Package Structure Analysis: Identified zip-based level distribution system
BeamNG levels are distributed as zip files containing:
- Terrain data (
.ter+.terrain.json) - Art assets (
/art/directory with textures, models, materials) - Prefab objects (
.prefabfiles) - Configuration files (
info.json, various.jsonconfigs) - Lua scripts (
mainLevel.lua) - Preview images and minimaps
- 🔴 High Priority - Critical path items
- 🟡 Medium Priority - Important but not blocking
- 🟢 Low Priority - Nice to have features
- ⏳ Not Started
- 🔄 In Progress
- ✅ Completed
- 🚫 Blocked
-
Task 0.1.1: Implement zip file browser and extraction ⏳
- Effort: 2 days
- Dependencies: None
- Deliverable: File browser that can select and extract BeamNG level zips
- Details: Handle
/content/levels/*.zipfiles, extract to temp directory
-
Task 0.1.2: Parse level package structure validation ⏳
- Effort: 1 day
- Dependencies: Task 0.1.1
- Deliverable: Package validation system
- Details: Verify required files exist (info.json, .ter, .terrain.json)
-
Task 0.1.3: Implement temp directory management ⏳
- Effort: 1 day
- Dependencies: Task 0.1.1
- Deliverable: Safe temp file handling with cleanup
- Details: Extract zips to temp dirs, clean up on completion/error
-
Task 0.2.1: Parse info.json for level metadata ⏳
- Effort: 2 days
- Dependencies: Task 0.1.2
- Deliverable: Level info parser with spawn points, size, etc.
- Details: Extract title, description, spawn points, size, country, biome
-
Task 0.2.2: Parse terrain preset for height scale ⏳
- Effort: 1 day
- Dependencies: Task 0.2.1
- Deliverable: Automatic height scale detection
- Details: Read
*terrainPreset.jsonfiles forheightScaleparameter
-
Task 0.2.3: Extract and organize asset references ⏳
- Effort: 2 days
- Dependencies: Task 0.2.1
- Deliverable: Asset dependency map
- Details: Map all texture/model/prefab references for import prioritization
-
Task 0.3.1: Integrate automatic height scale detection ✅
- Effort: 0.5 days
- Dependencies: Task 0.2.2, Completed terrain import
- Deliverable: Terrain import with correct height scaling
- Details: Use heightScale from terrain preset instead of hardcoded values
-
Task 0.3.2: Implement terrain positioning from preset ⏳
- Effort: 1 day
- Dependencies: Task 0.3.1
- Deliverable: Correctly positioned terrain mesh
- Details: Use pos.x, pos.y, pos.z from terrain preset for terrain placement
-
Task 0.3.3: Enhanced terrain material with opacity maps ⏳
- Effort: 2 days
- Dependencies: Task 0.3.2
- Deliverable: Multi-layer terrain materials using opacity maps
- Details: Import and use opacity maps from terrain preset for material blending
- Task 1.1.1: Create basic addon directory structure ✅
- Task 1.1.2: Implement
__init__.pywith addon metadata ✅ - Task 1.1.3: Create basic UI panel structure ✅
- Task 1.1.4: Implement basic menu integration ✅
- Task 1.2.1: Analyze
.terterrain format structure ✅ - Task 1.2.2: Document
.prefabTorqueScript structure ⏳- Updated Priority: Now HIGH - needed for complete level import
- Task 1.2.3: Research DDS texture pipeline with oiiotool 🔄
- Effort: 2 days
- Dependencies: None
- Deliverable: DDS → EXR/PNG conversion workflow
- Task 1.2.4: Analyze DAE model import requirements ⏳
- Effort: 2 days
- Dependencies: None
- Deliverable: Collada import pipeline documentation
- Task 1.3.1: Set up version control and project structure ✅
- Task 1.3.2: Create comprehensive test level collection ⏳
- Effort: 1 day
- Dependencies: Task 0.1.1
- Deliverable: Test suite with multiple level zips
- Task 1.3.3: Set up automated testing framework ⏳
- Effort: 2 days
- Dependencies: Task 1.3.2
- Deliverable: Automated import testing system
-
Task 2.1.1: Implement DDS to EXR conversion ⏳
- Effort: 3 days
- Dependencies: Task 1.2.3
- Deliverable: DDS texture converter using oiiotool
- Details: Convert
/art/terrains/textures to Blender-compatible formats
-
Task 2.1.2: Batch texture processing from art directory ⏳
- Effort: 2 days
- Dependencies: Task 2.1.1
- Deliverable: Automated texture import from
/art/directories - Details: Process textures from terrains/, decals/, skies/, etc.
-
Task 2.1.3: Texture organization and naming system ⏳
- Effort: 1 day
- Dependencies: Task 2.1.2
- Deliverable: Organized texture library in Blender
- Details: Maintain BeamNG naming conventions and directory structure
- Task 2.2.1: Complete terrain import with EXR displacement ✅
- Task 2.2.2: Layermap texture creation with material IDs ✅
- Task 2.2.3: Terrain material node group ✅
- Task 2.2.4: Multi-layer terrain material system ⏳
- Effort: 3 days
- Dependencies: Task 2.1.1, Task 0.3.3
- Deliverable: Complete terrain material with all texture layers
- Details: Use opacity maps for proper material blending
-
Task 2.3.1: DAE (Collada) model importer ⏳
- Effort: 3 days
- Dependencies: Task 1.2.4
- Deliverable: Import models from
/art/shapes/directory - Details: Handle mesh data, UV mapping, material assignments
-
Task 2.3.2: Model material assignment system ⏳
- Effort: 2 days
- Dependencies: Task 2.3.1, Task 2.1.1
- Deliverable: Automatic material assignment to imported models
- Details: Link DDS textures to model materials
-
Task 2.3.3: Model positioning and hierarchy ⏳
- Effort: 2 days
- Dependencies: Task 2.3.2
- Deliverable: Organized model hierarchy in Blender scene
- Details: Create logical object grouping and naming
-
Task 3.1.1: TorqueScript prefab parser ⏳
- Effort: 5 days
- Dependencies: Task 1.2.2
- Deliverable: Complete prefab file parser
- Details: Parse object definitions, transforms, properties, materials
-
Task 3.1.2: Object transform extraction and conversion ⏳
- Effort: 2 days
- Dependencies: Task 3.1.1
- Deliverable: BeamNG to Blender coordinate system conversion
- Details: Handle position, rotation, scale transformations
-
Task 3.1.3: Material and texture reference resolution ⏳
- Effort: 3 days
- Dependencies: Task 3.1.2, Task 2.1.1
- Deliverable: Automatic material assignment from prefab data
- Details: Link prefab material references to imported textures
-
Task 3.2.1: Prefab object instantiation system ⏳
- Effort: 3 days
- Dependencies: Task 3.1.3, Task 2.3.1
- Deliverable: Create Blender objects from prefab definitions
- Details: Instance models with correct transforms and materials
-
Task 3.2.2: Scene hierarchy organization ⏳
- Effort: 2 days
- Dependencies: Task 3.2.1
- Deliverable: Logical scene organization with collections
- Details: Group by prefab type, material, or function
-
Task 3.2.3: Spawn point creation ⏳
- Effort: 1 day
- Dependencies: Task 0.2.1
- Deliverable: Spawn point objects with metadata
- Details: Create spawn points from info.json with preview images
-
Task 3.3.1: Decal system import ⏳
- Effort: 3 days
- Dependencies: Task 3.2.1
- Deliverable: Road markings and decal placement
- Details: Import from
*.decals.jsonfiles
-
Task 3.3.2: Forest/vegetation system ⏳
- Effort: 4 days
- Dependencies: Task 3.2.1
- Deliverable: Tree and vegetation placement
- Details: Import from
*.forestbrushes*.jsonfiles
-
Task 3.3.3: Lighting system import ⏳
- Effort: 2 days
- Dependencies: Task 3.2.1
- Deliverable: Scene lighting from prefab light objects
- Details: Convert BeamNG lights to Blender light objects
-
Task 4.1.1: Advanced material node groups ⏳
- Effort: 3 days
- Dependencies: Task 2.1.1
- Deliverable: BeamNG-style material templates
- Details: Create node groups for different BeamNG material types
-
Task 4.1.2: PBR material conversion ⏳
- Effort: 3 days
- Dependencies: Task 4.1.1
- Deliverable: Convert BeamNG materials to PBR workflow
- Details: Handle diffuse, normal, specular, roughness maps
-
Task 4.1.3: Material library system ⏳
- Effort: 2 days
- Dependencies: Task 4.1.2
- Deliverable: Reusable material library
- Details: Create library of common BeamNG materials
-
Task 4.2.1: Skybox import from art/skies ⏳
- Effort: 2 days
- Dependencies: Task 2.1.1
- Deliverable: World shader with BeamNG skybox
- Details: Import and convert skybox textures
-
Task 4.2.2: Environment lighting setup ⏳
- Effort: 2 days
- Dependencies: Task 4.2.1
- Deliverable: Realistic environment lighting
- Details: Set up world lighting to match BeamNG
-
Task 4.2.3: Atmospheric effects ⏳
- Effort: 1 day
- Dependencies: Task 4.2.2
- Deliverable: Fog, haze, and atmospheric effects
- Details: Recreate BeamNG atmospheric conditions
-
Task 5.1.1: Zip file browser with preview ⏳
- Effort: 3 days
- Dependencies: Task 0.1.1
- Deliverable: Level selection UI with previews and metadata
- Details: Show level info, size, preview images before import
-
Task 5.1.2: Import options panel ⏳
- Effort: 2 days
- Dependencies: Task 5.1.1
- Deliverable: Granular import control
- Details: Toggle terrain, objects, materials, vegetation, etc.
-
Task 5.1.3: Progress tracking and logging ⏳
- Effort: 2 days
- Dependencies: Task 5.1.2
- Deliverable: Real-time import progress with detailed logging
- Details: Show progress bars, current operation, estimated time
-
Task 5.2.1: Level browser and manager ⏳
- Effort: 2 days
- Dependencies: Task 5.1.1
- Deliverable: Manage multiple imported levels
- Details: Switch between levels, manage level data
-
Task 5.2.2: Asset inspector and editor ⏳
- Effort: 3 days
- Dependencies: Task 5.2.1
- Deliverable: Inspect and modify imported assets
- Details: Material editor, object properties, etc.
-
Task 5.3.1: Comprehensive error handling system ⏳
- Effort: 2 days
- Dependencies: All import tasks
- Deliverable: Robust error handling with recovery
- Details: Handle missing files, corrupted data, format changes
-
Task 5.3.2: Import validation and reporting ⏳
- Effort: 2 days
- Dependencies: Task 5.3.1
- Deliverable: Validation report with warnings and errors
- Details: Check imported data integrity and completeness
-
Task 6.1.1: Terrain export to .ter format ⏳
- Effort: 4 days
- Dependencies: Completed terrain import
- Deliverable: Export modified terrain back to BeamNG format
-
Task 6.1.2: Prefab export system ⏳
- Effort: 5 days
- Dependencies: Task 3.1.1
- Deliverable: Generate prefab files from Blender objects
-
Task 6.1.3: Asset export pipeline ⏳
- Effort: 3 days
- Dependencies: Task 6.1.2
- Deliverable: Export textures and models to BeamNG formats
-
Task 6.2.1: Level package builder ⏳
- Effort: 3 days
- Dependencies: Task 6.1.3
- Deliverable: Generate complete level zip packages
-
Task 6.2.2: Metadata generation ⏳
- Effort: 2 days
- Dependencies: Task 6.2.1
- Deliverable: Generate info.json and configuration files
-
Task 7.1.1: Multi-level import testing ⏳
- Effort: 4 days
- Dependencies: All import functionality
- Deliverable: Test with all available BeamNG levels
-
Task 7.1.2: Performance optimization ⏳
- Effort: 3 days
- Dependencies: Task 7.1.1
- Deliverable: Optimized import/export performance
-
Task 7.1.3: Memory usage optimization ⏳
- Effort: 2 days
- Dependencies: Task 7.1.2
- Deliverable: Reduced memory footprint for large levels
-
Task 7.2.1: Exported level validation in BeamNG ⏳
- Effort: 3 days
- Dependencies: All export functionality
- Deliverable: Verify exported levels work in BeamNG
-
Task 7.2.2: Roundtrip testing ⏳
- Effort: 2 days
- Dependencies: Task 7.2.1
- Deliverable: Import → Edit → Export → Test workflow validation
- Task 0.1.1: Zip package handler
- Task 0.2.1: Level metadata parser
- Task 0.2.2: Height scale detection
- Task 0.3.1: Enhanced terrain import
- Task 1.2.3: DDS texture pipeline
- Task 2.1.1: DDS to EXR conversion
- Task 2.3.1: DAE model import
- Task 3.1.1: Prefab parser
- Task 3.2.1: Complete scene construction
- Task 4.1.1: Material system
- Task 5.1.1: Enhanced UI
- Zip file browser: Select any BeamNG level zip
- Automatic extraction: Safe temp directory handling
- Metadata parsing: Level info, spawn points, dimensions
- Height scale detection: Automatic terrain scaling
- Multi-layer materials: Full opacity map support
- Correct positioning: Use terrain preset coordinates
- Material blending: Proper layer mixing
- Batch texture processing: Convert all DDS textures
- Model import: DAE files with materials
- Organized hierarchy: Logical scene organization
- Decal system: Road markings and surface details
- Vegetation: Tree and plant placement
- Lighting: Scene lighting from BeamNG data
- Spawn points: Player spawn locations
- Package Import: Successfully import any BeamNG level zip file
- Complete Scenes: Terrain + objects + materials + lighting
- Performance: Handle large levels (1-3GB) in reasonable time
- Accuracy: Visual fidelity matching original BeamNG levels
- Usability: One-click import from zip to complete Blender scene
- Compatibility: Support for all major BeamNG level formats
- oiiotool: DDS texture conversion to EXR/PNG
- zipfile: Python built-in for zip handling
- tempfile: Secure temporary file management
- lxml: Enhanced XML parsing for DAE files
- Small levels (< 500MB): < 2 minutes import time
- Medium levels (500MB-1GB): < 5 minutes import time
- Large levels (1-3GB): < 15 minutes import time
- Memory usage: < 4GB RAM for largest levels
This updated plan provides a comprehensive roadmap for importing complete BeamNG level packages, building on our successful terrain import foundation.