WPF desktop application for visualizing a simple flight trajectory simulation in 3D. The project demonstrates C# desktop development, MVVM, dependency injection, numerical calculations, asynchronous execution, and JSON persistence.
- C# and WPF
- .NET 6 Windows
- MVVM with CommunityToolkit.Mvvm
- HelixToolkit.Wpf for 3D visualization
- Microsoft.Extensions.DependencyInjection
- System.Text.Json
- 3D trajectory visualization in a WPF window
- Start/stop simulation controls
- RK4-based numerical integration
- Basic flight dynamics model with position, velocity, gamma, and psi parameters
- MVVM structure with commands and observable properties
- Dependency injection for simulation and storage services
- Save and load simulation parameters and trajectory data as JSON
- Separate settings window for simulation parameters
OneUnitSimV/
Models/ Simulation parameters, state, vector, and flight dynamics
Services/ Simulation engine and JSON storage abstractions
ViewModels/ Main and settings view models
Views/ WPF windows and XAML UI
The application keeps UI logic in view models and moves calculation/storage logic into services:
WPF View -> ViewModel Command -> ISimulationEngine / IStorageService -> Models
Main services:
ISimulationEngine/RungeKuttaEngine- calculates trajectory points asynchronouslyIStorageService/JsonStorageService- saves and loads trajectory data
dotnet restore
dotnet build OneUnitSimV.sln
dotnet run --project OneUnitSimVThis is a Windows desktop project and requires a Windows environment with WPF support.
- C# desktop development beyond CRUD applications
- MVVM structure and command binding
- Dependency injection in a WPF application
- Async simulation flow with cancellation
- Numerical methods and 3D visualization