Software

Open-source tools from the group. Everything is on GitHub under jkitchin.

1,264 GitHub stars across these packages. Numbers update live from GitHub, PyPI and crates.io.

Featured

Optimization

discopt

A mixed-integer nonlinear programming modeling language and solver, using spatial branch and bound over convex relaxations with interior point subsolvers.

32 6 1 day ago

A pure-Rust family of interior point solvers that began as a port of Ipopt, now covering nonlinear, conic and quadratic programs.

81 9 1 day ago

A pure-Rust sparse symmetric indefinite linear solver with certified inertia counts, built for interior point optimization.

21 3 4 days ago

Deterministic global optimization of plain JAX functions, using McCormick relaxations of the jaxpr and branch and bound for a certified lower bound.

0 0 9 days ago

discopt plugins

Extensions that add domain models and methods to the discopt modeling language.

discopt-doe

Design of experiments for discopt, from active-learning optimization and classical factorial and mixture designs to model-based D-, A- and E-optimal design.

2 0 1 day ago

discopt-mkm

Microkinetic modeling for discopt, with catalysis kinetics, degree of rate control, mechanism discovery and selection, and electrochemistry.

2 0 1 day ago

discopt-aggregation

Variable aggregation, a reduced-space presolve for nonlinear optimization, following Naik et al. (arXiv:2502.13869).

0 0 10 days ago

discopt-apps

Application builders for AC optimal power flow and pooling problems in discopt.

0 0 10 days ago

discopt-course

An optimization course and a tutor command-line tool built on discopt.

0 0 1 day ago

Process modeling and surrogates

difflow

A JAX framework for differentiable chemical process flowsheets, for simulation, optimization and technoeconomic analysis.

15 1 2 days ago

jax-difftree

Differentiable soft decision trees in JAX with built-in uncertainty quantification, scikit-learn estimators and MILP export.

0 0 2 days ago

Linear and hyperplane decision trees in pure JAX for piecewise-linear surrogate models.

3 1 7 days ago

jax-ibart

Iterative Bayesian additive regression trees in JAX, which find compact symbolic descriptors with uncertainty and export them to discopt for global optimization.

0 0 10 days ago

tep-rust

A Tennessee Eastman Process simulator in Rust, with Python wheels and a browser app.

2 0 10 days ago

Machine learning and scientific computing

Python computations in science and engineering. A book and a library of helpers for numerical methods, regression and more.

284 75 3 days ago

An ASE-compliant Python interface to VASP.

157 64 10 days ago

dft-book

Modeling materials using density functional theory with VASP and the Atomic Simulation Environment.

468 145 2 days ago

AI tools for research

Curate and search your scientific literature with natural-language queries over a local database of papers.

85 10 2 days ago

crucible

A personal knowledge base where an LLM distills papers, notebooks and data into an interlinked org-mode wiki.

12 2 2 days ago

knowhow

Install and manage AI agent skills, subagents, commands, hooks and MCP servers from any git repo, for Claude Code, Codex, OpenCode, Gemini and more.

41 10 3 days ago

Deprecated

Superseded packages, kept here for reference.