Panda3D.Async 1.11.0-preview.6

This is a prerelease version of Panda3D.Async.
dotnet add package Panda3D.Async --version 1.11.0-preview.6
                    
NuGet\Install-Package Panda3D.Async -Version 1.11.0-preview.6
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Panda3D.Async" Version="1.11.0-preview.6" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Panda3D.Async" Version="1.11.0-preview.6" />
                    
Directory.Packages.props
<PackageReference Include="Panda3D.Async" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Panda3D.Async --version 1.11.0-preview.6
                    
#r "nuget: Panda3D.Async, 1.11.0-preview.6"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Panda3D.Async@1.11.0-preview.6
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Panda3D.Async&version=1.11.0-preview.6&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Panda3D.Async&version=1.11.0-preview.6&prerelease
                    
Install as a Cake Tool

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 native AsyncFuture so cross-thread signalling is handled by the existing atomic state machine.
  • Chain-aware continuations — after await, control resumes on the same AsyncTaskChain it started on. ConfigureAwait(false) opts out.
  • SynchronizationContext bridge — 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.Task via AsTask() / PandaTask.FromTask().

Depends on

  • Panda3D.Interop 1.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 imperative raw-asteroids sample, this is the minimal "look, the same game, but with await NextFrame() and await 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
    F Periodic + on-demand HTTP fetch — await httpClient.GetStringAsync(...) resumes on the scene chain via the SynchronizationContext bridge.
    P One-shot HTTP ping with measured roundtrip.
    R CPU offload — await PandaTask.SwitchToChain("workers") runs heavy compute on worker threads, hops back to "default" before mutating planet state.
    G Native async asset load — loader.MakeAsyncRequest + await IAsyncFuture to splice a freshly-loaded model into the running scene.
    S / L Save/load orbit state via File.WriteAllTextAsync / ReadAllTextAsyncTask awaited inside a PandaTask coroutine.
    C Cooperative cancellation — replaces the in-flight CancellationTokenSource.
    ESC Quit.

    Always-on background coroutines: per-planet orbit + axial spin, slowly-orbiting camera, periodic HTTP heartbeat, and a real Thread-backed sensor producer feeding a Channel — its startup is gated on a cross-thread PandaTaskCompletionSource the consumer awaits.

    Set MC_AUTOQUIT=N to auto-quit after N seconds (handy for smoke tests).

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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