mecha10-sim 0.6.2

Mecha10 simulation support — scene generation, asset management
Documentation
//! Simulation generation module
//!
//! Automatically generates simulation scenes from mecha10.json configuration.
//!
//! # Architecture
//!
//! The simulation module is organized into:
//! - `catalog`: Environment catalog management
//! - `generator`: Scene generation logic
//! - `profile`: Robot profile extraction
//! - `robot_generator`: Robot scene generation
//! - `selector`: Environment selection logic
//! - `validator`: Configuration and catalog validation
//! - `lister`: Environment listing

#![allow(dead_code)]

pub mod catalog;
pub mod generator;
pub mod lister;
pub mod profile;
pub mod robot_generator;
pub mod selector;
pub mod validator;

pub use catalog::EnvironmentCatalog;
#[allow(unused_imports)]
pub use lister::list_environments;
pub use profile::RobotProfile;
pub use robot_generator::RobotGenerator;
pub use selector::EnvironmentSelector;
#[allow(unused_imports)]
pub use validator::{validate_catalog, validate_config};

use anyhow::Result;
use std::path::Path;

/// Generate standalone robot scene from mecha10.json
pub fn generate_robot(config_path: &Path, output_path: &Path) -> Result<()> {
    println!("🤖 Mecha10 Robot Generator\n");

    let generator = RobotGenerator::from_config_file(config_path)?;
    generator.generate(output_path)?;

    println!("\n✅ Robot generation complete!");
    println!("\nOutput: {}", output_path.display());

    Ok(())
}