An open API service indexing awesome lists of open source software.

https://github.com/dominikjezik/diss-sp2-eventbasedsimulation

Second semester project for Discrete Simulation – Event-based simulation of a custom furniture workshop with staff, built on a custom simulation core. Developed using .NET and Avalonia.
https://github.com/dominikjezik/diss-sp2-eventbasedsimulation

avalonia discrete-event-simulation discrete-simulation dotnet simulation

Last synced: about 2 months ago
JSON representation

Second semester project for Discrete Simulation – Event-based simulation of a custom furniture workshop with staff, built on a custom simulation core. Developed using .NET and Avalonia.

Awesome Lists containing this project

README

          

# 🪑 Furniture manufacturer Discrete-Event Simulation
This project simulates the operations of a furniture manufacturer using discrete-event simulation techniques. The simulation models the workflow of furniture production, including the processing of orders, material handling, and worker assignments. The objective is to analyze the efficiency of the production process and determine optimal number of employees for different groups of workers (A, B, C). The simulation is built using .NET and Avalonia for the user interface.

The application was developed as the second semester work on the Discrete Simulation course at the Faculty of Management Science and Informatics of the University of Žilina.

## 🎯 Key Objectives
- Determine optimal worker counts per group (A/B/C)
- Ensure average order processing time < 16 working hours
- Design of simulation experiments to find optimal configuration
- Statistical analysis of simulation results (using 95% confidence intervals)

## 🛠️ Core Features
- 🕹️ Two simulation modes:
- **Single-run**: Detailed workflow visualization
- **Multi-run**: Statistical analysis with 95% confidence intervals
- 🔧 Customizable parameters:
- Worker counts per group (A/B/C)
- Simulation duration (249 work days)
- 📊 Real-time monitoring:
- Order queue lengths
- Worker utilization rates
- Production stage durations
- Other statistics
- 📈 Convergence trends visualization for average processing order time
- ⏱️ Accelaration and deceleration of simulation run speed

## 🚀 Video Preview
https://github.com/user-attachments/assets/023dd096-8e76-492b-90ef-fccc7b833dc2

## 🏭 Simulation Scenario
Models a furniture workshop producing:
- 🟫 **Tables** (50% of orders)
- 🪑 **Chairs** (15%)
- 🚪 **Closets** (35%)

### Production Workflow
1. **Group A**: 🪚 Material preparation and cutting
2. **Group C**: 🖌️ Staining and varnishing
3. **Group B**: 🛠️ Assembly
4. **Group C**: 🪛 Fittings installation (wardrobes only)

### Key Parameters
- Order arrival: Poisson process (λ=2 orders/hour)
- Worker movement times: Triangular distributions
- Processing times vary by furniture type (see documentation)

## 🔀 Event Diagram


Event Diagram


Diagram of the discrete events used in the simulation.

Solid arrows indicate that the first event always triggers the second event.

Dashed arrows indicate that the first event may trigger the second event.


## 🛠️ Program Architecture


Program Architecture


Simplyfied class diagram of the program architecture


## 📚 Documentation
[📘 Detailed semester work documentation](docs/documentation.pdf) includes details about:
- Discrete-event simulation core architecture
- Event scheduling algorithm
- Random number generators using seed generator
- Details about each discrete event
- Design and statistical analysis of simulation experiments


![Multiple replications simulation](docs/images/multiple-replications.png)

Multiple replications simulation showing average processing time of order over replications and various statistics as means and 95% confidence intervals

![Single replication simulation](docs/images/single-replication.png)

Single replication simulation showing current state of single replication run with detailed statistics






# 🪑 Udalostne orientovaná simulácia výrobcu nábytku
Tento projekt simuluje prevádzku výrobcu nábytku pomocou udalostne orientovanej simulácie. Simulácia modeluje pracovný postup výroby nábytku, vrátane spracovania objednávok, manipulácie s materiálom a prideľovania pracovníkov. Cieľom je analyzovať efektívnosť výrobného procesu a určiť optimálny počet zamestnancov pre rôzne skupiny pracovníkov (A, B, C). Simulácia je postavená na platforme .NET a používateľské rozhranie je implementované pomocou Avalonia frameworku.

Aplikácia bola vytvorená ako druhá semestrálna práca v rámci predmetu Diskrétna simulácia na Fakulte riadenia a informatiky Žilinskej univerzity v Žiline.

## 🎯 Hlavné ciele
- Určiť optimálny počet pracovníkov v každej skupine (A/B/C)
- Zabezpečiť priemerný čas vybavenia objednávky < 16 pracovných hodín
- Návrh simulačných experimentov pre nájdenie optimálnej konfigurácie
- Štatistická analýza výsledkov simulácie (pomocou 95% intervalov spoľahlivosti)

## 🛠️ Hlavné funkcie
- 🕹️ Dva režimy simulácie:
- **Jednorazová simulácia**: Podrobná vizualizácia pracovného postupu
- **Viacnásobná simulácia**: Štatistická analýza s 95% intervalmi spoľahlivosti
- 🔧 Konfigurovateľné parametre:
- Počet pracovníkov v skupinách (A/B/C)
- Doba simulácie (249 pracovných dní)
- 📊 Sledovanie v reálnom čase:
- Dĺžky frontov objednávok
- Miera vyťaženia pracovníkov
- Doba trvania výrobných fáz
- Ďalšie štatistiky
- 📈 Zobrazenie grafu konvergencie priemerného času vybavenia objednávky
- ⏱️ Rýchlosť simulačného behu je možné zrýchliť alebo spomaliť

## 🚀 Video ukážka
https://github.com/user-attachments/assets/023dd096-8e76-492b-90ef-fccc7b833dc2

## 🏭 Scenár simulácie
Modelujeme dielňu na výrobu nábytku, ktorá vyrába:
- 🟫 **Stoly** (50% objednávok)
- 🪑 **Stoličky** (15%)
- 🚪 **Skrine** (35%)

### Pracovný postup výroby
1. **Skupina A**: 🪚 Príprava a rezanie
2. **Skupina C**: 🖌️ Morenie a lakovanie
3. **Skupina B**: 🛠️ Skladanie
4. **Skupina C**: 🪛 Montáž kovaní (iba pre skrine)

### Kľúčové parametre
- Príchod objednávok: Poissonov proces (λ=2 objednávky/hod)
- Časy presunu pracovníkov: Trojuholníkové rozdelenia
- Časy spracovania sa líšia podľa typu nábytku (viď dokumentácia)

## 🔀 Diagram udalostí


Diagram udalostí


Diagram diskrétnych udalostí použitých v simulácii.

Plné šípky znamenajú, že prvá udalosť vždy naplánuje druhú udalosť.

Čiarkované šípky znamenajú, že prvá udalosť môže naplánovať druhú udalosť.


## 🛠️ Architektúra programu


Architektúra programu


Zjednodušený diagram tried architektúry programu


## 📚 Dokumentácia
[📘 Podrobná dokumentácia semestrálnej práce](docs/documentation.pdf) obsahuje podrobnosti:
- Jadro architektúry udalost-orientovanej simulácie
- Algoritmus plánovania udalostí
- Generátory pseudonáhodných čísel pomocou generátora násad
- Podrobnosti o každej diskrétnej udalosti
- Návrh a štatistická analýza simulačných experimentov


![Multiple replications simulation](docs/images/multiple-replications.png)

Simulácia s viacerými replikáciami, ktorá zobrazuje graf ustaľovania priemerného času vybavenia objednávky počas replikácií a rôzne štatistiky v podobe priemerov a 95% intervalov spoľahlivosti

![Single replication simulation](docs/images/single-replication.png)

Simulácia zobrazujúca jednu replikáciu, ktorá zobrazuje aktuálny stav behu simulácie s podrobnými štatistikami