Skip to content

Releases: phydra-labs/phydrax

Phydrax v0.2.2

18 Feb 18:38
cd0e87e

Choose a tag to compare

What's Changed

Full Changelog: v0.2.1...v0.2.2

Phydrax v0.2.1

16 Feb 21:27
956c662

Choose a tag to compare

What's Changed

Full Changelog: v0.2.0...v0.2.1

v0.2.0

09 Feb 23:10
3a42d1f

Choose a tag to compare

Phydrax v0.2.0

Phydrax 0.2.0 is a major ergonomics and performance release across sampling, differentiation, PCI overlays, and examples.

Highlights

1) Unified sampling API (num_points)

Constraint sampling now uses a single interface:

  • Dense: num_points=1024 or num_points=(256, 256)
  • Coord-separable: num_points={"x": 128, "t": 256}
  • Mixed dense + separable: num_points=(8, {"x": axis_spec})

This removes split configuration and simplifies sampling setup.

2) Differential operator execution upgrades

  • Explicit AD engine behavior (including JVP path) where applicable

This improves consistency and helps optimized routes apply to structured/
factorized models.

Physics-Constrained Interpolation (PCI) enforced overlays now better
preserve optimized derivative paths through composition, including:

  • Derivative-aware blend/quotient-style composition
  • Improved boundary/initial compatibility handling
  • Better propagation of optimized derivative behavior through enforced ansätze

4) New example: examples/wave1d.py (Marimo notebook)

Added a full tutorial wave equation example demonstrating:

  • Latent-factorized modeling
  • PCI-enforced BC/IC overlays

Public notebook:

5) Docs/site updates

  • Added Docs → Examples → Overview

  • Added LinkedIn docs branding/icon updates

  • Updated guides/API docs for new sampling and differentiation behavior

  • Version bump: 0.1.1 → 0.2.0

  • Notebook deps surfaced for example workflow (marimo, matplotlib)

  • Solver training logs include per-iteration timing

Migration notes

Sampling API

If you previously used separate coord-separable sampling arguments, migrate to num_points forms.

Before:

num_points=8
coord_separable={"x": phx.domain.UniformAxisSpec(nx)}
dense_structure=phx.domain.ProductStructure((("data",),))

After:

num_points=(8, {"x": phx.domain.UniformAxisSpec(nx)})
dense_structure=phx.domain.ProductStructure((("data",),))

Or fully separable:

num_points={"x": 128, "t": 256}

Validation scope

This release includes broad test updates/additions across:

  • Constraint sampling behavior and edge cases
  • Differential operators/runtime cache behavior
  • Latent contraction structured/flat behavior
  • Enforced solver/overlay behavior
  • Docs example execution path

Full Changelog: v0.1.1...v0.2.0

Initial release!

31 Jan 01:39

Choose a tag to compare

Initial release