NuGet package dependencies

July 3, 2026 · View on GitHub

Published packages are listed in build/packages.txt. That manifest includes src/ and ext/ library projects only — never toolchain/, plugins/, apps/, or other repo folders. All listed packages share the version in Directory.Build.props. Pack with pack.bat; see NUGET_RELEASE.md.

Arrows in the diagrams below point from a package to what it depends on.

Meta-package hierarchy

Meta-packages are dependency-only bundles (no source of their own). Pick the smallest tier that fits your app.

flowchart TB
  subgraph full ["Ara3D.SDK (net8.0-windows — full stack)"]
    SDK["Ara3D.SDK"]
  end

  subgraph tiers ["Meta-packages"]
    CORE["Ara3D.SDK.Core<br/>net8.0"]
    GEO["Ara3D.SDK.Geometry<br/>net8.0"]
    IO["Ara3D.SDK.IO<br/>net8.0-windows"]
    STUDIO["Ara3D.Studio.API"]
    WPF["Ara3D.Utils.Wpf<br/>ext/"]
  end

  SDK --> CORE
  SDK --> GEO
  SDK --> IO
  SDK --> STUDIO
  SDK --> WPF
Meta-packageDirectly includes
Ara3D.SDK.CoreCollections, DataTable, Events, F8, Logging, Memory, PropKit, Utils, Utils.Roslyn, WorkItems
Ara3D.SDK.GeometryCollections, F8, Geometry, Memory, Models, Utils
Ara3D.SDK.IOAll I/O + BOS libraries, plus IfcLoader
Ara3D.SDKCore + Geometry + IO + Studio.API + Utils.Wpf
Meta-packageTFMUse when
Ara3D.SDK.Corenet8.0Minimal cross-platform foundation
Ara3D.SDK.Geometrynet8.0Meshes, models, SIMD math
Ara3D.SDK.IOnet8.0-windowsFile formats, BOS, and IFC conversion
Ara3D.SDKnet8.0-windowsEverything above plus Studio API and WPF

Library dependency graph

Grouped by layer. Leaf nodes (no internal Ara3D dependencies): Collections, Events, F8, Memory, Utils, WorkItems, IO.SharpGLTF.

flowchart BT

  subgraph leaves ["Foundation (no internal deps)"]
    Collections
    Events
    F8
    Memory
    Utils
    WorkItems
    SharpGLTF["IO.SharpGLTF"]
  end

  subgraph core ["Core utilities"]
    Logging --> Utils
    UtilsRoslyn["Utils.Roslyn"] --> Logging
    Geometry --> Collections
    Geometry --> Memory
    Geometry --> Utils
    PropKit --> Geometry
    PropKit --> Utils
  end

  subgraph data ["Data & models"]
    DataTable --> Collections
    DataTable --> PropKit
    Models --> Collections
    Models --> F8
    Models --> BFAST["IO.BFAST"]
    Models --> Memory
    Models --> Geometry
    BFAST --> Memory
    BFAST --> Utils
  end

  subgraph io ["File I/O"]
    G3D["IO.G3D"] --> Collections
    G3D --> BFAST
    VIM["IO.VIM"] --> Memory
    VIM --> BFAST
    VIM --> G3D
    StepParser["IO.StepParser"] --> Memory
    StepParser --> Logging
    StepParser --> Utils
    PLY["IO.PLY"] --> Geometry
    PLY --> Memory
    GltfExporter["IO.GltfExporter"] --> Models
    GeoJson["IO.GeoJson"] --> Collections
    GeoJson --> Models
    GeoJson --> Utils
  end

  subgraph bim ["BIM Open Schema"]
    BOS["BimOpenSchema"] --> DataTable
    BOS --> Geometry
    BOS --> Models
    IfcLoader["IfcLoader (ext/)"] --> BOS
    IfcLoader --> StepParser
    IfcLoader --> Models
    BOSIO["BimOpenSchema.IO"] --> BOS
    BOSIO --> IfcLoader
  end

  subgraph studio ["Studio & WPF"]
    StudioAPI["Studio.API"] --> DataTable
    StudioAPI --> Logging
    StudioAPI --> Models
    UtilsWpf["Utils.Wpf (ext/)"] --> Geometry
    UtilsWpf --> Utils
  end

External NuGet dependencies

Most libraries have zero external NuGet deps. The exceptions:

flowchart LR
  UtilsRoslyn["Utils.Roslyn"] --> CodeAnalysis["Microsoft.CodeAnalysis.CSharp"]
  UtilsRoslyn --> DiaSym["Microsoft.DiaSymReader.Native"]
  GltfExporter["IO.GltfExporter"] --> Newtonsoft["Newtonsoft.Json"]
  BOSIO["BimOpenSchema.IO"] --> ClosedXML
  BOSIO --> DuckDB["DuckDB.NET.Data.Full"]
  BOSIO --> Parquet["Parquet.Net"]

IfcLoader also ships the native web-ifc-library.dll from vendor/ (not a NuGet package).

Quick reference

If you need…Reference
Minimal cross-platform foundationAra3D.SDK.Core
Meshes, SIMD math, modelsAra3D.SDK.Geometry
VIM, PLY, glTF, BOS, IFCAra3D.SDK.IO
Studio plug-in APIAra3D.Studio.API (or full Ara3D.SDK)
WPF helpersAra3D.Utils.Wpf
Just one formatIndividual package, e.g. Ara3D.IO.VIM

Per-project descriptions: src/README.md.

Not published to NuGet

Built locally but excluded from meta-packages and build/packages.txt. Projects under these folders set IsPackable=false (see toolchain/Directory.Build.props).

FolderExamplesNotes
toolchain/Parakeet, Plato, IfcTypeGenDev/codegen tools; Parakeet is not packed from this repo
plugins/Bowerbird, Revit add-insHost plug-ins
apps/BOS BrowserStandalone apps
integrations/Assimp loaderOptional adapters
wip/DomoWork in progress