Panda3D.Async
1.11.0-preview.6
dotnet add package Panda3D.Async --version 1.11.0-preview.6
NuGet\Install-Package Panda3D.Async -Version 1.11.0-preview.6
<PackageReference Include="Panda3D.Async" Version="1.11.0-preview.6" />
<PackageVersion Include="Panda3D.Async" Version="1.11.0-preview.6" />
<PackageReference Include="Panda3D.Async" />
paket add Panda3D.Async --version 1.11.0-preview.6
#r "nuget: Panda3D.Async, 1.11.0-preview.6"
#:package Panda3D.Async@1.11.0-preview.6
#addin nuget:?package=Panda3D.Async&version=1.11.0-preview.6&prerelease
#tool nuget:?package=Panda3D.Async&version=1.11.0-preview.6&prerelease
Panda3D.Async
Zero-allocation async/await for the Panda3D C# bindings.
Heavily inspired by UniTask.
Provides:
PandaTask/PandaTask<T>— a struct task type analogous to UniTask, with a pooled state-machine runner (no allocation for sync-completed awaits or per-frame yields).PandaTaskCompletionSource— safe to complete from any thread; backed by a nativeAsyncFutureso cross-thread signalling is handled by the existing atomic state machine.- Chain-aware continuations — after
await, control resumes on the sameAsyncTaskChainit started on.ConfigureAwait(false)opts out. SynchronizationContextbridge —await httpClient.GetAsync(…)inside a coroutine automatically resumes on the originating chain, so scene-graph mutation after a network call is thread-safe.- Interop with
System.Threading.Tasks.TaskviaAsTask()/PandaTask.FromTask().
Depends on
Panda3D.Interop1.11.*
Nothing else. All native support (the ManagedAsyncTask class and
the AsyncFuture C# extension methods) ships inside the existing
Panda3D.Runtime.{rid} packages — Panda3D.Async is pure managed
code.
Samples
samples/asteroids-async— Asteroids ported to coroutines. Side-by-side with the imperativeraw-asteroidssample, this is the minimal "look, the same game, but withawait NextFrame()andawait Delay()" comparison.samples/mission-control— interactive solar-system tech demo. Textured planets orbit a sun on per-planet coroutines while a HUD reflects what the engine is doing. Keys exercise the async features the asteroids sample doesn't:Key Demonstrates FPeriodic + on-demand HTTP fetch — await httpClient.GetStringAsync(...)resumes on the scene chain via theSynchronizationContextbridge.POne-shot HTTP ping with measured roundtrip. RCPU offload — await PandaTask.SwitchToChain("workers")runs heavy compute on worker threads, hops back to "default" before mutating planet state.GNative async asset load — loader.MakeAsyncRequest+await IAsyncFutureto splice a freshly-loaded model into the running scene.S/LSave/load orbit state via File.WriteAllTextAsync/ReadAllTextAsync—Taskawaited inside aPandaTaskcoroutine.CCooperative cancellation — replaces the in-flight CancellationTokenSource.ESCQuit. Always-on background coroutines: per-planet orbit + axial spin, slowly-orbiting camera, periodic HTTP heartbeat, and a real
Thread-backed sensor producer feeding aChannel— its startup is gated on a cross-threadPandaTaskCompletionSourcethe consumer awaits.Set
MC_AUTOQUIT=Nto auto-quit after N seconds (handy for smoke tests).
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Panda3D.Interop (>= 1.11.0-preview.4122)
NuGet packages (13)
Showing the top 5 NuGet packages that depend on Panda3D.Async:
| Package | Downloads |
|---|---|
|
Panda3D.Framework.Abstractions
Contracts for the Panda3D.Framework: interfaces, options, frame slots and shared parameter types. No behavior. |
|
|
Panda3D.Framework.Scheduling
Gameplay-facing scheduling and time: IFrameScheduler over native task-manager tasks, IGameClock over the global clock, and clock pacing. |
|
|
Panda3D.Framework.Events
The C#/Panda event seam: the per-frame queue-drain pump replacing direct's messenger, plus INamedEventBus and IObservable notifications. |
|
|
Panda3D.Framework.Rendering
The Panda3D rendering chain as DI services: engine/pipe/GSG, per-output views (window or offscreen), camera rigs, the 2D overlay, and the igLoop render task. |
|
|
Panda3D.Framework.Intervals
Cutscene/tween timelines on Panda's native CInterval system: Sequence/Parallel/Lerp, node lerps, managed intervals, awaitable playback. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.11.0-preview.6 | 127 | 8/3/2026 |
| 1.11.0-preview.4 | 125 | 7/26/2026 |
| 1.11.0-preview.3 | 135 | 7/20/2026 |