-
Notifications
You must be signed in to change notification settings - Fork 4
Overall Archetecture Design
Xiang Hong edited this page Aug 24, 2024
·
3 revisions
In general, DualDrill framework is trying to provide a easy to use libraries for code-first scientific computing/visualization interactive/batched (distribute) applications using GPU for computation and simulation. To achieve this, DualDrill framework is going to provide following functionalities:
- Provide basic application infrastructure leveraging .NET platform, including system api's, async/await systems by .NET and dependency injections systems, etc. Currently focusing on supporting Windows and Linux.
- Managed Graphics and Cuda API bindings/wrappers for easier and safer GPU application development in C#. Currently focusing on providing WebGPU(native) and Vulkan Apis.
- Providing distributed connections apis, basically using WebRTC for realtime connections, with Websocket and HTTP for signal service and REST APIs over HTTP for batchmode interactions.
- GPU programming using C#, by using custom attributes to make a EDSL in C#, and providing compiler(transplier) of MSIL to target shader languages (including WGSL, GLSL and CUDA)
- Providing high-level abstraction of rendering and simulation applications, e.g. abstraction over native window surface and headless surface, abstraction over realtime simulation/rendering, abstraction over frame simulation/rendering, abstraction over user inputs etc.
- Mathmatic libraries for graphics/geometric calculations, including classic vector/matrics based libraries and experimental geometric algebra based libraries
- Runtime libraries for clents, espcially framework runtime libraries in js for browser clients and python client for IPython/Jupyter/Notebook environments
- Editor experience providing via VSCode extensions
- Opinioned limited UI libraries via html/js