Skip to content

ALchemist v0.3.3

Choose a tag to compare

@calebcoatney calebcoatney released this 23 Mar 17:43
· 27 commits to main since this release

ALchemist v0.3.3 Release Notes

Release Date: March 23, 2026

Highlights

This release delivers a major expansion of experimental design capabilities with a full DoE suite, AI-assisted design via LLMs, multi-objective BO infrastructure, and additional surrogate model options. It also completes the documentation for several v0.3.2 features that shipped without user guides.


New Features

Design of Experiments — Full Suite

A comprehensive DoE module now covers the full spectrum from exploratory space-filling to confirmatory RSM to statistically optimal designs.

Classical & Screening Designs

  • Full Factorial — all combinations of factor levels (configurable n_levels 2–5)
  • Fractional Factorial — Resolution III+ designs via generator strings; built-in defaults for 3–7 factors
  • Central Composite Design (CCD) — orthogonal/rotatable, circumscribed/inscribed/faced variants; full ccd_alpha and ccd_face control
  • Box-Behnken — spherical design for 3+ continuous factors; avoids extreme corners
  • Plackett-Burman — ultra-efficient 2-level screening (run count = next multiple of 4 ≥ k+1)
  • Generalized Subset Design (GSD) — fractional design for mixed categorical + continuous spaces; configurable gsd_reduction factor

All classical methods are available in the Initial Design panel (web and desktop) and via session.generate_initial_design(method=...).

Optimal Experimental Design (D/A/I-optimal)

  • Specify model terms using variable names: main effects, two-factor interactions (Temperature*Pressure), and quadratic terms (Temperature**2)
  • Three model type shortcuts: "linear", "interaction", "quadratic"
  • Three optimality criteria: D (parameter estimation), A (average variance), I (prediction variance)
  • Five exchange algorithms: sequential (Dykstra), simple_exchange, fedorov (default), modified_fedorov, detmax (Mitchell)
  • Configurable run count: absolute n_points or proportional p_multiplier (e.g., 2× model columns)
  • Preview endpoint — inspect model terms and recommended run count before generating
  • D-efficiency and A-efficiency metrics returned with every design
  • Full UI integration in web app (Quick mode / Custom mode / Preview) and desktop GUI

AI-Assisted Effect Selection

  • LLM-powered effect suggestion for optimal designs via OpenAI (gpt-4o, gpt-4-turbo, gpt-4.1) or locally-running Ollama models
  • Edison Scientific literature search integration — queries PaperQA3 for grounded, cited prior knowledge before structuring the effect recommendation
  • Three Edison job types: literature (standard), literature_high (deep reasoning), precedent
  • Per-session Edison result cache (15 min TTL) — avoids re-running expensive searches
  • Results include reasoning, confidence levels, and literature citations
  • AI output constrained to variable names in the current search space (no hallucinated variable names)
  • Config persisted to ~/.alchemist/config.json; optional install: pip install 'alchemist-nrel[llm]'
  • Fix: LLM no longer generates hallucinated citations when no Edison context is available
  • Fix: Ollama base URL now normalized to include /v1 path prefix

Discrete Variable Type

  • New Discrete variable type for numerical variables restricted to specific allowed values (e.g., silica-to-alumina ratios: 80, 280, 450)
  • Full integration across all layers: variable definition, DoE generation, surrogate modeling, BO acquisition
  • BoTorch backend uses optimize_acqf_mixed with discrete_choices for correct enumeration
  • Supports main effects, interactions in optimal design; quadratic terms for 3+ allowed values
  • Available in web UI, desktop GUI, Python API, and REST API

IBNN Kernel for BoTorch

  • Infinite-Width Bayesian Neural Network (IBNN) kernel available as a third kernel option alongside Matern and RBF
  • Configurable depth parameter (default 3, range 1–10)
  • Suited for response surfaces with complex compositional or hierarchical structure
  • Exposed via kernel="IBNN" with optional kernel_params={"depth": 3} in training requests

Multi-Objective BO: Variable Role Management

  • Explicit variable / target / drop column role assignment when loading CSV data
  • Web UI: target column selection panel appears on CSV upload, supports multi-select for multi-objective
  • Desktop UI: dedicated MOBO panel with target column configuration
  • REST API: target_columns query parameter on upload endpoint accepts comma-separated column names
  • Python API: session.load_data(path, target_columns=["Yield", "Selectivity"])

3D Surface & Uncertainty Surface Plots

  • create_surface_plot() — 3D predicted response surface over two variables
  • create_uncertainty_surface_plot() — 3D predictive uncertainty surface
  • Available from the web UI Visualizations panel and Python API

Improvements

  • pyDOE pinned to version 0.9.5 for reproducibility across environments
  • D-efficiency computation corrected for designs with degenerate or ill-conditioned information matrices

Documentation

This release adds complete documentation for all new features above, plus backfills several v0.3.2 features that lacked user guides:

New documentation pages:

  • Design of Experiments → Classical & Screening Designs
  • Design of Experiments → Optimal Design
  • Design of Experiments → AI-Assisted Effect Selection
  • Acquisition & Optimization → Multi-Objective Optimization
  • Python API → Staged Experiments
  • Visualizations → 3D Surface Plots
  • Background → Design of Experiments (theory)

Updated pages:

  • Getting Started → Setting Up Variable Space (Discrete type)
  • Getting Started → Generating Initial Experiments (DoE overview)
  • Getting Started → Loading Experimental Data (target column selection)
  • Surrogate Modeling → BoTorch Backend (IBNN kernel)
  • Home (updated feature list)

Full Changelog

v0.3.2...v0.3.3 — 11 commits