OutWit.Engine.Assets 1.0.0

dotnet add package OutWit.Engine.Assets --version 1.0.0
                    
NuGet\Install-Package OutWit.Engine.Assets -Version 1.0.0
                    
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="OutWit.Engine.Assets" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OutWit.Engine.Assets" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="OutWit.Engine.Assets" />
                    
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 OutWit.Engine.Assets --version 1.0.0
                    
#r "nuget: OutWit.Engine.Assets, 1.0.0"
                    
#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 OutWit.Engine.Assets@1.0.0
                    
#: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=OutWit.Engine.Assets&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=OutWit.Engine.Assets&version=1.0.0
                    
Install as a Cake Tool

OutWit.Engine.Assets

Controller asset resolution library for WitEngine.

Overview

Controllers in WitEngine consist of two kinds of artefacts:

  • Logic — compiled .NET assemblies, manifests, small scripts. Naturally distributed via NuGet.
  • Data — native runtimes (Blender, FFmpeg), datasets, reference scenes, ML models. Can be hundreds of MB or more, distributed independently.

This library handles the data side: parses the extended controller.json manifest, resolves declared asset URIs, downloads with SHA256 verification, caches by content hash, and extracts archives into the controller's runtime module layout.

It is the shared core used by:

  • OutWit.Engine.Assets.Cli (outwit-resolve) — invoked during WitCloud server Docker image builds
  • OutWit.Engine.Assets.MSBuild — auto-imported via controller NuGet packages so local dotnet run of the WitCloud server fetches missing assets on first build
  • OutWit.Controller.Pack (outwit-controller-pack) — third-party contributor packaging tool for manifest validation
  • WitCloud server runtime — contributor-upload pipeline, when policy permits manifests with external URIs

See @Docs/Active/Architecture/controller-assets-architecture.md for the full design.

Manifest schema (extension)

The existing controller.json schema is extended with an optional dataAssets[] array:

{
  "name": "Render",
  "version": "1.15.0",
  "...": "other existing controller manifest fields unchanged",
  "dataAssets": [
    {
      "id": "blender-win-x64",
      "runtimeIdentifier": "win-x64",
      "uri": "gh-release://omnibuscloud/Controllers/render-v1.15.0/blender-win-x64.zip",
      "sha256": "abc123...",
      "size": 240000000,
      "extractTo": "blender/win-x64/",
      "required": true
    }
  ]
}

Controllers without external assets simply omit the field.

URI schemes

Scheme Use case
gh-release://<owner>/<repo>/<tag>/<filename> Free public distribution via GitHub Releases
https://... Author-controlled CDN / S3 / Azure Blob
file://... Local override, or relative path inside a contributor zip

Status

Skeleton + manifest parsing. Resolvers, cache, fetcher, CLI, and MSBuild task land in subsequent steps per the implementation plan.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  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.
  • net10.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 55 5/17/2026