AiDotNet.Evolution 0.1.0-preview.1

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

AiDotNet.Evolution

AiDotNet.Evolution is a dependency-light, task-agnostic quality-diversity engine for .NET. It provides deterministic parallel evaluation, typed genome contracts, MAP-Elites archives, island migration, bounded diagnostics, trace output, and checkpoint/resume support.

The package does not depend on AiDotNet or AiDotNet.Tensors. Domain integrations—such as model search, program evolution, and hardware-kernel autotuning—supply typed genomes, validation, variation, and evaluation through the public contracts.

The initial package version is 0.1.0-preview.1 and targets .NET 10, .NET 8, and .NET Framework 4.7.1.

Core contracts

  • IEvolutionTask<TGenome> owns canonical identity, validation, and evaluation.
  • IVariationOperator<TGenome> proposes immutable typed genomes; stateful operators can additionally implement ICheckpointableVariationOperator<TGenome>.
  • ISelectionPolicy<TGenome>, ICandidateRefiner<TGenome>, and IMigrationPolicy<TGenome> are explicit extension points rather than mode strings.
  • IEvolutionArchive<TGenome> controls quality/diversity retention. MapElitesArchive<TGenome> is provided.
  • IEvolutionGenomeCodec<TGenome> enables checkpoint/resume without imposing a serializer on genome types.
  • Reference-typed genomes implement IImmutableEvolutionGenome<TGenome> and return a new, independently owned copy from CreateOwnedSnapshot; strings and value types with entirely value-based fields satisfy the boundary directly. A value type holding a reference must also implement the contract because copying the value alone does not copy its reachable state. Nested arrays, collections, and objects must be copied recursively. The engine takes this snapshot once at canonicalization, so archives, migration, and selection do not clone on their hot paths.

Evaluation caches inside the engine are run-local memoization keyed by canonical genome identity. Deployment caches owned by consumers—such as a GPU kernel autotune cache—remain separate because their keys also need hardware, driver, compiler, and correctness-policy fingerprints.

Integration boundaries

The engine intentionally knows nothing about models, prompts, compilers, or hardware. Integrations keep those domain objects in their owning repository and implement the typed contracts above:

  • AiDotNet uses it for MAP-Elites AutoML and program evolution. Facade builders, model materialization, LLM clients, prompt templates, and sandboxed execution stay in AiDotNet.
  • AiDotNet.Tensors uses it for offline, startup, and background kernel search. Device benchmarks, correctness oracles, launch configurations, hardware fingerprints, and deployment caches stay in AiDotNet.Tensors.
  • Compiler schedule search, fusion-policy search, quantization-policy search, optimizer selection, feature selection, architecture search, and prompt/program search can share the engine without sharing domain-specific genomes.

Finite choices should be represented by enums or other validated value types inside a genome. Strings remain appropriate for extensible identifiers, version hashes, metric names, and serialized payloads at an explicit boundary.

Development

See CONTRIBUTING.md for local validation and repository setup for CI, security, and release configuration.

License and provenance

The project is licensed under Apache License 2.0. The engine was developed in the AiDotNet repository and informed by the Apache-2.0-licensed OpenEvolve project. Original commit authorship is retained in this repository's filtered Git history; see THIRD-PARTY-NOTICES.md for upstream attribution.

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 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. 
.NET Framework net471 is compatible.  net472 was computed.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETFramework 4.7.1

  • net10.0

    • No dependencies.
  • net8.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
0.1.0-preview.1 0 9/9/2026