From matrix to trees, on your Mac
Import a NEXUS matrix, review its state partitions, choose an outgroup and monophyly constraints, and run the bundled engine with live progress. Pause, resume, and find every run again in History.
THE ONE THAT EXPLORES EVERY BRANCH
Phylogenetic inference in Rust, built ARM-first, inside a native Mac app. Import a morphological matrix, run the sampler, summarize the trees and read the diagnostics. In beta, by invitation.
Phylogenetics in Rust, with the scalar reference always in the room.
i compared that likelihood against the reference. twice.
01 / MORE THAN A PRETTY ICON
6 ways to make your day easier.
Yes, we got a little carried away.
Import a NEXUS matrix, review its state partitions, choose an outgroup and monophyly constraints, and run the bundled engine with live progress. Pause, resume, and find every run again in History.
Strict or lognormal relaxed clock, Mk, Mkv or Mkparsinf conditioning, ordered characters, observed or declared alphabets, and fossil tip dating with a fixed or estimated fossilized birth–death process.
ESS and R-hat for every traced statistic, clade frequencies across chains, comparisons between chains and between independent runs, and stopping on thresholds you set. A finished run is not a converged one, and the app says so.
Go on. Open one.
Posterior predictive checks simulate matrices from the posterior and score them against yours on the same sampled tree. Stepping-stone and path-sampling marginal likelihoods give log Bayes factors between runs of the same matrix.
Partials are laid out pattern-major with a NEON path for Apple silicon, Mk is pruned in closed form, and a plain recursive implementation stays in the crate as the reference the core is compared against on every change.
Posterior summaries and clade frequencies agree with BEAST 2.7.8 on constructed 20-taxon cases, under criteria written before the runs. Larger matrices have not met the convergence criteria yet, and the reports say which.
A closer look at what makes Rove tick.
Rove is a phylogenetic inference engine written in Rust, designed for ARM CPUs first and for the data morphologists actually have: short matrices of binary and ternary characters. The Mac app wraps it. Import a NEXUS matrix, choose an outgroup and monophyly constraints, and run up to 16 independent chains under the strict or relaxed clock with Mk, Mkv or Mkparsinf, with fossil tip dating under the fossilized birth–death process when you have ages. Pause and resume, summarize the posterior trees into an annotated MCC tree, read trace diagnostics, compare chains and runs, check whether the model reproduces your matrix and compare models by marginal likelihood. Every number on screen comes from the engine, except the difference between two marginal-likelihood estimates and its combined error. Likelihoods are checked against a plain reference on every change, and posterior summaries agree with BEAST 2.7.8 on constructed cases under criteria written before the runs, with seeds and reports published. This is a beta: access is by invitation, a completed run records finished steps rather than evidence of convergence, and Rove says what exists today and what does not. The code is open under MIT or Apache-2.0.
02 / LET’S MAKE THIS OFFICIAL
A few practical details.
No awkward first-date questions.
THE COMPATIBILITY CHECK
For macOS · Apple silicon.
Made to feel right at home.

YOUR NEXT FAVORITE TOOL IS RIGHT HERE.
Rove is a native Mac app in beta around an engine that shows its checks. The code and the docs are open at rove.getcortexlabs.com.