Redninja106/simulationframework
Redninja106/simulationframework has 44 GitHub stars and 4 forks. GitHot measured 0 stars in 24 hours and 0 in 7 days. Last checked 2026-11-09 15:48 UTC. Last push 2026-02-15.
A simple and user-friendly framework for writing small graphical apps in C#.
What you can do
- Windowing: automatically creates a configurable window
- 2D Drawing: A powerful 2D drawing API, backed by SkiaSharp.
- Input: Mouse, keyboard and controller support.
- Built-in Dear ImGui Support: Dear ImGui is completely built-in with zero setup.
Measured star growth
- in 24h
- 0
- in 7 days
- 0
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
Original
SimulationFramework

SimulationFramework is a cross-platform library for creative coding, game development, and graphical apps built on .NET 8. Designed with simplicity and ease of use in mind, it cuts down on development time for quick and easy prototyping.
SimulationFramework is:
Simple: SimulationFramework is designed to be developer-friendly. It is well documented and provides flexible, intuitive, and easy-to-use APIs.
Portable: The core package is dependency free, meaning SimulationFramework can run anywhere .NET can.
Documented: The SimulationFramework Docs contain everything you need to know about SimulationFramework, its features, and how to use them.
Features:
Windowing: automatically creates a configurable window
2D Drawing: A powerful 2D drawing API, backed by SkiaSharp.
Input: Mouse, keyboard and controller support.
Built-in Dear ImGui Support: Dear ImGui is completely built-in with zero setup.
Shaders: Write shaders in C#! SimulationFramework compiles C# into GLSL at runtime (in beta, check out the canvas-shader branch).
With more on the way! See Planned Features.
Note: SimulationFramework is still changing with every new version. Breaking changes are frequent.
Getting Started
SimulationFramework requires .NET 8 and Visual Studio 2022.
Create a new Console App using .NET 8. Add the SimulationFramework Nuget Package (and its desktop environment) using Visual Studio or the .NET CLI via the following commands:
dotnet add package SimulationFramework
dotnet add package SimulationFramework.Desktop
Next, either inherit simulation and implement the abstract methods or create two methods OnInitialize and OnRender and pass them to Simulation.Create. To start the simulation, call Simulation.Run():
// Program.cs
using SimulationFramework;
using SimulationFramework.Drawing;
class Program : Simulation
{
public static void Main()
{
Start<Program>();
}
public override void OnInitialize()
{
}
public override void OnRender(ICanvas canvas)
{
}
}
OR
// Program.cs
using SimulationFramework;
using SimulationFramework.Drawing;
Simulation mySimulation = Simulation.Create(OnInitialize, OnRender);
mySimulation.Run();
void OnInitialize()
{
// called when the simulation starts
}
void OnRender(ICanvas canvas)
{
// called every frame
}
Running the program will result in a blank window:

Next, to start drawing. The ICanvas provided in OnRender() contains a variety methods for drawing.
// ...
void OnRender(ICanvas canvas)
{
// don't forget to clear the screen each frame!
canvas.Clear(Color.CornflowerBlue);
// draw a 50 pixel wide red square centered at the mouse position
canvas.Fill(Color.Red);
canvas.DrawRect(Mouse.Position, new Vector2(50, 50), Alignment.Center);
}
Here is what that should look like:

To see more, go to the wiki or join the discord server.
A Quick Overview
Most SimulationFramework features are exposed through static classes. Here is a list if the most important ones:
Mouse: provides mouse inputGamepad: provides controller inputKeyboard: provides keyboard inputGraphics: creates texturesTime: provides simulation timing values likeDeltaTimeWindow: configures the simulation's window
Planned Features
- C# shaders: .NET CIL to HLSL/GLSL compilation to write any kind of shader in plain C# (or any other .NET language!). (Coming in v0.3.0, alpha out now!)
- WebAssembly and Mobile Support: Any simulations you write will run on a web browser or mobile device, no code changes needed.
Explore related projects
ytdl-org/youtube-dl
Command-line program to download videos from YouTube.com and other video sites
141,500 starsexcalidraw/excalidraw
Virtual whiteboard for sketching hand-drawn like diagrams
135,331 starsgodotengine/godot
Godot Engine – Multi-platform 2D and 3D game engine
119,840 starsmrdoob/three.js
JavaScript 3D Library.
117,905 stars