ActDim.Three 1.0.10

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

ActDim.Three

ActDim.Three is a high-performance 3D graphics math, geometry, scene graph, and serialization library for .NET inspired by standard three.js data structures and workflows.

Features

  • Linear Algebra & 3D Math Primitives: High-performance 3D math types (Vector3, Matrix4, Euler, Quaternion, Color).
  • Scene Graph Hierarchy: Scene, Element, BufferGeometry, Camera (PerspectiveCamera, OrthographicCamera), and Lights (AmbientLight, DirectionalLight, PointLight, SpotLight, HemisphereLight, RectAreaLight).
  • Standard Materials: MeshBasicMaterial, MeshStandardMaterial, MeshPhongMaterial, MeshLambertMaterial, LineBasicMaterial, PointsMaterial.
  • High-Performance Typed Arrays: Direct primitive buffer abstractions (Float32Array, Float64Array, Int32Array, Uint8Array, Uint8ClampedArray).
  • Native System.Text.Json Serialization: Native high-speed ThreeSerializer utilizing System.Text.Json (STJ) and zero-allocation UTF-8 byte stream / string operations with typed primitive arrays for maximum throughput.
  • Decoupled Architecture: Core library has zero external dependencies on legacy serialization engines.

Feature Support & Roadmap Status

The table below outlines current component support in ActDim.Three and planned features on our roadmap for Three.js JSON Object/Scene Format v4 compatibility:

Category Component / Feature Current Status Roadmap Notes
Math Primitives Vector3, Vector2, Vector4, Matrix4, Euler, Quaternion, Color ✅ Supported Core 3D math & matrix transformations
Scene Graph Nodes Scene, Group, Mesh, Points, Line, LineSegments ✅ Supported Core scene graph node hierarchy
InstancedMesh, Sprite, LOD, LineLoop ✅ Supported Node extensions for instancing, sprites, and LOD
SkinnedMesh, Bone, Skeleton ✅ Supported Skeletal animation node DTOs
Layers (32-bit visibility mask) ✅ Supported Bitmask filtering property on Object3D
Cameras PerspectiveCamera, OrthographicCamera ✅ Supported Camera projection matrices
Lights & Shadows AmbientLight, DirectionalLight, PointLight, SpotLight, HemisphereLight, RectAreaLight ✅ Supported Complete Three.js light set
LightShadow, DirectionalLightShadow, SpotLightShadow ✅ Supported Shadow map parameters
Materials MeshStandardMaterial, MeshBasicMaterial, MeshPhongMaterial, MeshLambertMaterial, LineBasicMaterial, PointsMaterial ✅ Supported Standard materials
MeshPhysicalMaterial, LineDashedMaterial, MeshToonMaterial, ShadowMaterial, SpriteMaterial ✅ Supported Advanced PBR, dashed line & sprite materials
ShaderMaterial, RawShaderMaterial, MeshDepthMaterial, MeshNormalMaterial ✅ Supported GLSL shader code & depth/normal materials
Buffers & Geometry BufferGeometry, BufferAttribute, TypedArray (Float32Array, Uint32Array, etc.) ✅ Supported Zero-allocation buffer attributes
InstancedBufferAttribute, InstancedBufferGeometry ✅ Supported Instanced rendering attributes & geometry
InterleavedBuffer, InterleavedBufferAttribute, InstancedInterleavedBuffer ✅ Supported Interleaved memory buffers
Parametric Shape DTOs (BoxGeometry, SphereGeometry, CylinderGeometry, PlaneGeometry) ✅ Supported Parametric geometry descriptors
Textures & Media Texture, Image ✅ Supported Standard 2D texture maps & images
DataTexture, CompressedTexture ✅ Supported Raw pixel buffers & compressed textures
Serialization System.Text.Json (Native Engine) ✅ Supported High-speed zero-allocation STJ engine
Newtonsoft.Json (Adapter) ✅ Supported Via ActDim.Three.NewtonsoftJson

Performance & System.Text.Json

ActDim.Three uses System.Text.Json natively for scene and geometry serialization.

  • Typed Array Optimization: Numeric vertex, normal, and UV buffer data (Float32Array, Uint32Array, etc.) are written directly to/from UTF-8 byte streams without per-element object boxing (object[]) or intermediate string conversions.
  • High Throughput: System.Text.Json provides significantly higher serialization and deserialization speeds compared to traditional reflections-heavy wrappers.

If your application requires Newtonsoft.Json compatibility, use the dedicated extension package ActDim.Three.NewtonsoftJson.

Installation

Install via the .NET CLI:

dotnet add package ActDim.Three

Or via Package Manager Console:

Install-Package ActDim.Three

Quick Start Examples

1. Scene & Camera Setup

using ActDim.Three.Cameras;
using ActDim.Three.Core;
using ActDim.Three.Geometries;
using ActDim.Three.Lights;
using ActDim.Three.Materials;
using ActDim.Three.Math;
using ActDim.Three.Scenes;

// Create 3D scene
var scene = new Scene();

// Add ambient light and directional light
var ambientLight = new AmbientLight(new Color(0x404040));
scene.Add(ambientLight);

var dirLight = new DirectionalLight(new Color(0xffffff), 1.0f);
dirLight.Position.Set(5, 10, 7.5f);
scene.Add(dirLight);

// Create perspective camera
var camera = new PerspectiveCamera(75.0f, 16.0f / 9.0f, 0.1f, 1000.0f);
camera.Position.Set(0, 0, 5);

2. Scene Graph Serialization (System.Text.Json)

using ActDim.Three;
using ActDim.Three.Scenes;

var scene = new Scene();
// ... configure scene geometry & materials ...

// Serialize 3D scene document to JSON string using native STJ engine
string jsonString = ThreeSerializer.ToJson(scene.ToSceneDocument());

// Deserialize 3D scene document from JSON string
SceneDocument doc = ThreeSerializer.FromJson<SceneDocument>(jsonString);

Testing & Quality

  • Test Suite: ActDim.Three.Tests
  • Total Tests: 39 passed (100% success rate, 0 failed, 0 skipped)
  • Target Framework: .NET 10.0
dotnet test Tests/Three.Tests/ActDim.Three.Tests.csproj

License

This project is licensed under the MIT License.

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 (1)

Showing the top 1 NuGet packages that depend on ActDim.Three:

Package Downloads
ActDim.Three.NewtonsoftJson

Newtonsoft.Json serializer adapters and custom converters for ActDim.Three 3D scene graphs and typed array buffers.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.10 43 8/26/2026
1.0.9 57 8/25/2026
1.0.8 43 8/25/2026
1.0.7 64 8/20/2026
1.0.6 65 8/19/2026
1.0.5 65 8/19/2026
1.0.4 63 8/19/2026
1.0.3 73 8/18/2026
1.0.2 74 8/18/2026
1.0.1 74 8/17/2026
1.0.0 67 8/17/2026