Skip to main content

System architecture

SkyEngine separates the experiment workflow from factory execution and algorithm decisions. This lets different algorithms operate in a shared simulation environment.

User interface
Factory management · Live monitoring · Analysis · Experiments
│
Platform services
Run control · Experiment orchestration · Models · Results
│
Factory simulation
Jobs · Machines · AGVs · Roads · Materials · Disturbances
↕
Algorithm components
Process scheduling · Task assignment · Path planning · Joint policies

Platform and factory lifecycle​

The Vue interface talks to a FastAPI backend. Factory proxies provide lifecycle operations such as initialization, start, pause, reset, and cleanup, together with state, metric, and control streams. The backend selects a proxy for the environment being used.

The containerized grid environment uses DockerProxy to connect to simulation and algorithm services. PacketFactory uses a separate proxy and configuration flow. Shared lifecycle methods do not make the underlying environments interchangeable.

Simulation and decisions​

In the grid environment, the coordinator connects three responsibilities:

ComponentResponsibility
Job solverDecide processing operations and machine assignments
Task assignerAssign transport tasks to vehicles
Route solverDecide vehicle movement on the road network

Joint scheduling policies can coordinate production and transport together. The DFJSP-T policy includes PIBT for vehicle movement; users do not select an additional MAPF algorithm for its training and model tests.

The factory remains responsible for legal movement, processing progression, buffer capacity, material handoffs, and completion. A final operation finishing is not sufficient: the job completes after delivery and unloading at the finished-goods station.

Experiments and evidence​

The experiment workbench organizes training, parameter exploration, and testing. Models and checkpoints connect training to separate tests. Recorded events, dataset results, and replay help explain what happened during execution.

Use independent training, validation/tuning, and final benchmark datasets. A comparison should keep instances, seeds, disturbances, and simulation limits consistent.

Repository boundaries​

RepositoryResponsibility
skyenginePlatform, frontend, simulation, and experiment infrastructure
SkyEngine-FJSPProcess scheduling algorithms and HTTP container services
SkyEngine-MAPFMulti-agent path planning algorithms and HTTP container services
skyengine-DFJSPTThe dfjsp_t_rl Python package and joint scheduling training components

Obtain the separate skyengine-DFJSPT package from the project maintainers and prepare it before installation.