software
We build open-source tools that turn our research into software others can use. Our work lives on the Safe AI Lab GitHub.
NeuralOT.jl
Optimal transport is a thread that runs through much of our research, but the Julia ecosystem had a gap. Packages such as OptimalTransport.jl solve the discrete, entropic problem well — Sinkhorn iterations and exact linear programs over weighted point clouds. What was missing was neural optimal transport: the continuous methods that scale to high dimensions by parameterising the potential or the transport map as a neural network, and that generalise beyond the training samples. NeuralOT.jl fills that gap.
The package implements three established families of methods behind a single interface:
solve_dualEntropic OT in high dimensions directly from samples, when you need the cost or the dual potentials.
Seguy et al., ICLR 2018solve_w2Wasserstein-2 Monge maps via input-convex neural networks, when you need a valid transport map with provable convexity structure.
Makkuva et al., ICML 2020flow_matchTransport-based generative models that move noise to data, with simulation-free training that scales to large datasets.
Lipman et al., ICLR 2023
The common interface means switching methods is a one-line change. Learn a squared-cost Monge map between two distributions, then push samples through it:
result = solve_w2(sample_μ, sample_ν; dim=2, steps=2_000)
T_X = monge_map(result, X) # transported samples
Worked examples, installation instructions, and the method-selection guide are in the repository. The package is MIT licensed and open to contributions.
More from the Safe AI Lab
NeuralOT.jl is one of several open-source releases from our group. Others accompany individual papers. All of it lives on the Safe AI Lab GitHub organization.