Industrial plant topology, multi-layer material/control/energy flow modeling and failure propagation graph engine in MoonBit.
moon check --deny-warn
moon test --target native
moon run cmd/main -- demoimport {
"Bobojy00/moonbit_factory_graph" @factory_graph,
}let plant = @factory_graph.new_builder(
plant_name="Precision Electronics Assembly",
takt_time_target_sec=30.0,
)
.add_power_source("PWR-MAIN", "Substation 380V", capacity_kw=1000.0)
.add_workstation("WS-SMT", "Surface Mount Station", cycle_time_sec=25.0)
.add_workstation("WS-AOI", "Optical Inspection", cycle_time_sec=20.0)
.add_buffer("BUF-WIP", "PCB Rack Buffer", capacity=200.0)
.connect_material("WS-SMT", "WS-AOI", bandwidth=1200.0)
.connect_material("WS-AOI", "BUF-WIP", bandwidth=1200.0)
.connect_power_bus("PWR-MAIN", ["WS-SMT", "WS-AOI"])
.build()
let health = @factory_graph.inspect_graph_health(plant)
let capacity = @factory_graph.analyze_material_capacity(plant)
let outage = @factory_graph.evaluate_outage_portfolio(
plant,
["WS-SMT", "WS-AOI"],
)
let readiness = @factory_graph.audit_operational_readiness(plant)| Command | Purpose |
|---|---|
| info <preset> | Asset, zone, power, and topology summary |
| health <preset> | Inspect topology completeness and active flow layers |
| capacity <preset> | Analyze material demand, capacity margin, and congestion |
| readiness <preset> | Audit deployment readiness and release blockers |
| analyze <preset> | Bottleneck, SPOF, and safety analysis |
| outage <preset> <node> | Simulate a device outage cascade |
| path <preset> <from> <to> | Find a material-flow route |
| diff <preset1> <preset2> | Compare topology versions and risk |
| export <preset> <format> | Export dot, mermaid, puml, json, report, or CSV |
| optimize <preset> | Generate line-balance and energy-startup recommendations |
| bench | Run reproducible graph-scaling and analysis measurements |
| demo | Run an end-to-end multi-plant demonstration |
.
├── factory_graph.mbt # Stable library facade
├── cmd/main/ # Native/Wasm command-line application
├── src/types/ # Domain enums, metadata, validation values
├── src/graph/ # Graph, nodes, edges, builder, health checks
├── src/algorithms/ # Routing, flow, connectivity, scheduling
├── src/analysis/ # KPIs, safety, capacity, outage, resilience, readiness
├── src/diff/ # Topology comparison and migration risk
├── src/optimizer/ # Balancing, failover, buffers, energy
├── src/export/ # DOT, Mermaid, PlantUML, JSON, CSV, reports
├── src/presets/ # Four realistic industrial line models
├── **/*_test.mbt # Package-local unit and black-box tests
└── benchmarks/latest.md # Checked-in reproducibility recordmoon run cmd/main -- benchmoon fmt --check
moon check --deny-warn
moon test --target native
moon test --enable-coverage
moon coverage report -f summary
moon info
python scripts/check_moonbit_source.py --minimum 6000fn analyze_material_capacity(graph : FactoryGraph, demand_per_hour? : Double) -> MaterialCapacityReportfn audit_operational_readiness(graph : FactoryGraph, demand_per_hour? : Double) -> OperationalReadinessReportfn evaluate_outage_portfolio(graph : FactoryGraph, candidate_node_ids : Array[String], hourly_downtime_cost? : Double) -> OutagePortfolioReportfn new_builder(plant_name? : String, location? : String, takt_time_target_sec? : Double) -> FactoryGraphBuilderInstall
Download zipIndustrial plant topology, multi-layer material/control/energy flow modeling and failure propagation graph engine in MoonBit.