What’s new

All notable changes to the codebase are documented in this file. Changes that may result in differences in model output, or are required in order to run an old parameter set with the current version, are flagged with the term “Regression information”.

Version 3.2.0 (2026-09-19)

Reimplement the therapeutic vaccine (hpv.txvx) as a treatment product with conferred immunity. It subclasses hpv.tx again, clearing infections and lesions per the efficacy table and conferring severity immunity, rather than reducing susceptibility as a prophylactic.

Regression information: txvx_imm and its rel_sus path are gone, replaced by txvx_sev_imm feeding sev_imm. Any therapeutic-vaccine scenario changes substantially.

HPV latency is back, having been dropped in the move to v3. Some women who appear to clear an infection instead carry it silently and can become infectious again years later. This matters for screening: a woman who tests negative at 35 and reactivates at 45 was not protected by that test. Latency is switched off by default; turn it on with hpv_control_prob. Once on it changes cancer burden substantially, and the rate at which dormant infections wake up has never been fitted to data, so treat it as a parameter to calibrate rather than a default to trust.

HIV co-infection is much easier to set up. hpv.Sim(model_hiv=True) now builds everything needed, and you can choose whether HIV spreads through the sexual network or follows an incidence curve you supply. HIV and ART data can now be given in five-year age bands, which is how UNAIDS and Spectrum publish it – previously only single years of age worked, and banded data either failed outright or quietly left most ages untreated. A woman’s CD4 count now affects how fast her HPV progresses and how often a latent infection reactivates.

STIsim is no longer required. pip install hpvsim gives you a working HPV model on its own; add pip install hpvsim[hiv] when you need HIV.

Parameters are easier to pass. Any parameter can go straight into hpv.Sim(...) as a keyword, including location, and setting one value inside a nested group no longer discards the others alongside it. A parameter scoped to a module the sim does not have – hiv= in a no-HIV counterfactual, or a genotype the sim is not running – is now skipped with a warning instead of raising, so one calibrated parameter set can drive a whole scenario sweep. Misspelled parameters still raise.

More of the model reports itself. hpv.by_age now gives population denominators next to case counts, so you can build age-specific rates from a single analyzer. Vaccination programs now report doses given and women reached as time series.

HIV results are now scale-weighted. stisim counts agents with np.count_nonzero, so under grow-multiscale a fine agent (carrying scale = 1/ms_agent_ratio) was counted as a whole person and the total then multiplied by pop_scale. Every HIV stock over-reported as a result – about 6x at ms_agent_ratio=100, where a Zambia sim showed 8.0M infections against a true 1.1M. hpv.HIV now recomputes the all-age stocks, prevalences and flows with per-agent weighting, which brings HIV prevalence to within 2% of hpvsim 2.2.6 on the same parameters. Rather than ship the rest wrong, hpv.HIV now exposes only the results it recomputes – 24 of sti.HIV’s ~170. Deleted are stisim’s ~104 sex-by-age strata (n_infected_f_15_20 and friends), which share the defect and would need BaseSTI.update_results reimplemented to fix, and ~42 results for features hpvsim does not model (PrEP, circumcision, a testing cascade, MTCT) that previously shipped as flat zeros. Use hpv.by_age or a scale-weighted analyzer for age-stratified output; see starsimhub/stisim#574 for the upstream fix. The one exception is HIV prevalence by sex: hiv.prevalence_f and hiv.prevalence_m are defined and weighted by hpvsim itself, restricted to ages 15-49 to match the UNAIDS / Spectrum adult-prevalence convention Rwanda-style calibrations compare against.

Cervical cancer rates are now reported correctly by HIV status. all_hpv.cancer_incidence_with_hiv, cancer_incidence_no_hiv and cancer_rate_ratio previously divided female cancers by an all-sex headcount and reported a single timestep’s count rather than an annual rate, so at dt=0.25 the rates read several times too low and the rate ratio was biased – HIV prevalence is sex-skewed, so the two strata were deflated by different amounts. All three are now annual rates over a female denominator, computed per calendar year like the age-standardized results. A new all_hpv.cancer_incidence gives the crude rate per 100,000 women per year, the unstandardized companion to asr_cancer_incidence. All of these use scale-weighted denominators, so they are correct under multiscale.

New documentation. A user guide explaining how each part of the model works and how to change it, and nine tutorials, including new ones on HIV co-infection and on latency.

Regression information: the HIV-stratified cancer rates above change value substantially (annual and female-denominated, where they were per-timestep and all-sex), and cancer_rate_ratio is now nan rather than 0.0 in a year with no HIV-negative cancers. Any parameter set fitted against these results should be refitted.

Optional cancer detection lag. A per-genotype dur_undetected delays when cases show up in new_cancers; biological onset (which drives death, transmission and cross-genotype cancellation) is unchanged. Default is zero, so existing runs are unaffected. new_undetected_cancers gives the onset flow when a lag is set.

age_risk['risk'] is now a smooth ramp, not a step at age_risk['age']. Default age_risk is dict(age=30, age_end=50, risk=2), so dur_cin scales from 1 at 30 up to 2 at 50. The step previously left a bimodal age-at-cancer distribution.

Regression information: cancer age distributions shift; recalibrate parameter sets fitted against the step. A custom age_risk dict without age_end will fail — add age_end= or drop the override.

Post-clearance immunity uses ss.uniform instead of Beta. imm_init defaults to ss.uniform(0.5, 0.95) and cell_imm_init to ss.uniform(0.3, 0.9), previously Beta with means 0.35 and 0.25. Simpler to calibrate (a low= / high= dict maps straight to the distribution) and gives higher immunity — first-clearance nab_imm is around 0.54 instead of 0.26, closer to the epidemiological finding that same-type reinfection is uncommon.

Regression information: cross-immunity and cancer counts shift; recalibrate.

Fixes. sim.results.hpv16.cancers_with_hiv / cancers_no_hiv renamed to new_cancers_with_hiv / new_cancers_no_hiv so annualize() sums instead of averaging them — they were reading 4x too low at dt=0.25 and the wh+nh split no longer matched the total. BaseTreatment clears per-step outcomes before treatment fires. hpv.make_calib_sims restores the per-trial rand_seed when re-running top trials, so reruns reproduce the original. hpv.txvx defaults rel_imm and imm_init to the values shipped for txvx1. Treatment and therapeutic vaccination now respect the sex argument, which was previously ignored in places. Age ranges are applied the same way across every intervention. Treating a woman with a latent infection now clears it. Building a test or treatment product from a data file no longer fails when the simulation starts. hpv.dx and hpv.tx now accept name= alongside df=, so a sim can hold more than one product built from a custom data file without them colliding on the class-default module name. hpv.dx, hpv.tx, hpv.txvx and hpv.vx take a new module_name= kwarg that separates the CSV lookup key from the module name, so two shipped-'ablation' (or shipped-'bivalent') programs can coexist in one sim. hpv.vx(name='bivalent') now sets self.name='bivalent' (was the class default 'vx'), matching hpv.tx/hpv.dx. Screening interventions’ per-step counters are renamed n_screened → new_screens and n_dx → new_dx to match the new_* flow convention used everywhere else; the shipped names were per-step flows but their n_ prefix made ss.Result.annualize() average them (stock semantics) instead of summing them, giving quarterly counts at dt=0.25 when annual totals were wanted. The documentation build works again, having been broken since v3.1.0.

Regression information: any downstream code reading sim.interventions['<name>'].results['n_screened'] / n_dx must switch to new_screens / new_dx. Similarly, sim.results.hpv16.cancers_with_hiv / cancers_no_hiv are now new_cancers_with_hiv / new_cancers_no_hiv.

Version 3.1.0 (2026-08-20)

Adds flat parameter routing, a redesigned calibration workflow, and real-population scaling by default; requires starsim>=3.6.

  • hpv.route_pars(sim, pars) and hpv.Sim(pars={...}) route flat, dotted, or nested keys to the right module. SexualNetwork pars are now flat (defaults in hpv.NetworkPars), and CrossImmunity pars use define_pars.
  • hpv.Calibration takes a single data= argument (CSVs, DataFrames, or dicts) and nested calib_pars with [best, low, high, step] leaves. Adds shrink(), hpv.make_calib_sims(), and a rewritten hpv.plot_calibration().
  • hpv.AgeResults is now hpv.by_age, with a positional-keys API and one ss.Result per (key, age bin). The genotype-distribution and per-100k-rate keys are removed; use hpv.results_by_genotype().
  • New WHO2000-standardized all_hpv.asr_cancer_incidence / asr_cancer_mortality results (no analyzer needed).
  • Demographics: total_pop is auto-populated from UN WPP when location is given, and datafolder= loads custom CSVs. hpv.demo() returns an example sim; bare hpv.Sim() is a natural-history playground.
  • Prevalence results are now scale=False; age_pyramid, dalys, and age_causal_infection outputs are scaled by pop_scale.
  • Regression information: hpv.Sim(location=...) without total_pop now gives pop_scale > 1, so results are at real-population scale; pass total_pop=n_agents for the old behavior.
  • Regression information: default transm2f drops from 3.69 to 2.0, per-act beta is clipped to [0, 1] (higher values previously gave silent NaNs), and ablation/excision now clear precin, so screen-and-treat scenarios avert more cancers; recalibrate existing parameter sets.
  • Regression information: all vaccination, screening, and treatment interventions now default to sex='f'; pass sex=None for both sexes.
  • Regression information: hpv.Calibration(datafiles=...) and flat dotted calib_pars are removed; the default is now reseed=False, so redo calibrations that fit seed noise under the old reseed=True.

Version 3.0.0 (2026-07-16)

HPVsim v3 is a ground-up migration onto Starsim. The disease model, sexual network, demographics, interventions, and analyzers are now Starsim modules, and hpv.Sim wraps starsim.Sim. The natural-history model, genotypes, and interventions are preserved; the API changed substantially. See the migration guide for a full v2→v3 walkthrough.

  • Rebuilt on Starsim (starsim>=3.5); requires Python ≥ 3.10.
  • Multi-genotype HPV with cross-immunity, natural history (precin/CIN/cancer), sexual network, demographics, vaccination, screening, and test-and-treat cascades all reimplemented as Starsim modules.
  • Multiscale modeling (ms_agent_ratio) grows real fine agents rather than scheduling extras, giving an intervention-correct, unbiased cancer level.
  • Analyzers (snapshot, age_pyramid, age_causal_infection, dalys, AgeResults, per-genotype results) and built-in plotting ported.
  • HIV–HPV co-infection via a transmission-based HIV module built on STIsim, raising HPV susceptibility and severity by CD4 stratum. (Redesigned in v3.2.)
  • Regression information: v3 uses Starsim’s RNG framework and does not share a stream with v2; results are not bit-identical to v2 even with the same seed. Validate on overlapping uncertainty intervals, not exact values.
  • Regression information: the hpv.Sim constructor no longer takes a positional parameter dict (the first positional argument is location); pass parameters as keyword arguments or hpv.Sim(**pars). end is now stop; the pooled 'hr' genotype shorthand is replaced by hi5/ohr.
  • Regression information: results are organized by module (sim.results.hpv16.cum_infections, aggregate sim.results.all_hpv.*) rather than one flat dict; sim.short_summary and the top-level hpv.save/hpv.load/hpv.MultiSim helpers are removed (use sim.save() / ss.load() / ss.MultiSim).
  • Not ported to v3.0: waning immunity, EventSchedule, and custom settings.py (superseded by ss.options).

Version 2.3.0 (2026-04-20)

  • Fixes dt-dependent results by scaling partnership formation rates to per-timestep probabilities; layer_probs and cross-layer defaults converted to annual probabilities.
  • Regression information: If workflows from v2.2.6 or earlier override default layer_probs, f_cross_layer, or m_cross_layer values and have timesteps not equal to 1 year, then the probabilities must be converted to annual probabilities instead of per-timestep probabilities using this formula: 1 - (1 - prob) ** dt
  • Regression information: baseline model outputs change; baselines have been regenerated.
  • Fixes precins flow never being incremented; removes redundant dysplasias flow (was an alias of cins).
  • Adds test coverage for previously untested code paths.
  • Vaccine immunity is now sterilizing (all-or-nothing) rather than leaky (per-contact). imm_init sets the probability of sterilizing immunity; non-sterilizing recipients get leaky protection at the imm_init level. Default is 0.95.
  • Adds per-timestep transmission logging (sim._transmission_log) for downstream analysis of transmission chains.
  • Calibration now supports resuming from an existing database via keep_db=True, running only the remaining trials.
  • Calibration workers catch exceptions instead of crashing the entire run.
  • Fixes res_to_plot indexing bug in Calibration.plot().
  • Regression information: vaccine efficacy will differ from previous versions due to the immunity model change.

Version 2.2.7 (2026-04-22)

  • Fix cancer treatment results always being blank: BaseTreatment.check_eligibility was excluding cancer patients (preventing radiation from running), BaseTreatment.apply was writing to CIN fields for cancer treatment, and cum_cancer_treated cumsum used the wrong source array
  • Github info PR 94, issue 91

Version 2.2.6 (2026-04-17)

  • Reconcile different copies of repository
  • Github info PR 75

Version 2.2.5 (2025-10-27)

  • Small bugfix for campaign vaccination
  • Github info PR 689

Version 2.2.4 (2025-08-20)

  • Fixes a bug in analyzer results for cancer by age and HIV status
  • Github info PR 687

Version 2.2.3 (2025-06-27)

  • Small bugfixes and changes to HIV module parameterization
  • Github info PR 685

Version 2.2.2 (2025-06-20)

  • Bugfix to allow running simulations beyond 2100
  • Github info PR 681

Version 2.2.1 (2025-05-29)

  • Bugfix for running calibrations to prevent interventions being reinitialized
  • Github info PR 678

Version 2.2.0 (2025-05-23)

  • Refresh results: ensure all main results are populated, remove cancer detection results, and fix bug with HPV prevalence calculations
  • Updates to docs
  • Github info PR 673

Version 2.1.0 (2025-03-25)

  • Updates how HPV prognoses are re-evaluated for WLWH
  • Fixes CD4 reconstitution trajectory so that it plateaus before quadratic starts decreasing
  • Fixes ART coverage so that it’s now by age, sex, and time
  • Fixes assignment of HIV mortality based upon ART coverage
  • Removes HIV-mortality from background mortality
  • Small fix to enable calibration to HIV-stratified data
  • Adds a more robust data downloading method and renamed get_data() to download_data(); updated data version to 1.4
  • Github info PR 652

Version 2.0.2 (2024-03-05)

  • Modifies DALY analyzer to output YLLL, YLD and DALYs
  • Github info PR 659

Version 2.0.1 (2024-02-14)

  • Adds in relative transmissibility attribute to people that can be modified by vaccination or treatment
  • Github info PR 643

Version 2.0.0 (2023-11-29)

  • Simplifies natural history model by compressing CIN grades
  • Changes the way HPV progression is modeled so that there is a probability of developing CIN based upon duration of precin and probability of cancer based upon duration of cancer (based upon Rodriguez et al. https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3705579/)
  • Adds support for pre-calibration explorations
  • Improvements to networks, including clustering functionality, support for different distributions for male and female partners and for differing concurrency rates, and changes to default partnership durations
  • Exposes a parameter for specifying the sex ratio of a population
  • Fixes plotting issue with tutorial
  • Updates filtering for tests that are not genotype-specific
  • Github info PR 643

Version 1.2.7 (2023-09-22)

  • Updates sim.summary to have more useful information
  • Github info PR 618

Version 1.2.6 (2023-09-22)

  • Fixes plotting issue with MultiSims and Jupyter notebooks
  • Allows scenarios to be run fully in parallel
  • Github info PR 614

Version 1.2.5 (2023-09-21)

  • Fixes file path when run via Jupyter
  • Github info PR 610

Version 1.2.4 (2023-09-19)

  • Fixes Matplotlib regression in plotting
  • Github info PR 609

Version 1.2.3 (2023-08-30)

  • Updates data loading to be much more efficient
  • Github info PR 604

Version 1.2.2 (2023-08-11)

  • Improved tests and included conda environment specification
  • Github info PR 598

Version 1.2.1 (2023-07-09)

  • Updated data files being used
  • Github info PR 586

Version 1.2.0 (2023-05-31)

  • Changes to improve run speed, most notably changes to how migration is applied
  • Additional tests to ensure consistency between calibration results, age analyzer results, and sim results
  • Updates to natural history to prevent people progressing too quickly to cancer
  • Github info PR 576

Version 1.1.5 (2023-03-23)

  • Adds cross-protection functionality to t-cell immunity and adds sev_imm attribute to people
  • Github info PR 564

Version 1.1.4 (2023-03-15)

  • Fixes bug that caused location data to be loaded twice
  • Github info PR 546

Version 1.1.3 (2023-03-14)

  • Fixes bug that misses some ways you can specify sex for vaccination
  • Github info PR 555

Version 1.1.2 (2023-03-13)

  • Fixes bug that never computed cancer deaths by age
  • Github info PR 554

Version 1.1.1 (2023-03-01)

  • Sets time to and date of HIV death for those not on ART and who fail on ART
  • Moves all HIV attributes, parameters, and results into hivsim class instance
  • Merges HIV results with sim.results at conclusion of simulation
  • Adds HIV pars as an argument to calibration as well as HIV-specific results to age-results analyzer
  • Allows for flexible severity growth functions
  • Github info PR 542

Version 1.1.0 (2023-02-16)

  • Moves all HIV functionality into hiv.py
  • Establishes new class HIVsim, which is defined by a set of parameters and methods for updating a people object
  • Bug fix for setting people.sev wrong on day of infection
  • Github info PR 526

Version 1.0.1 (2023-02-09)

  • Fixes computation of dur_episomal by adjusting for dt
  • GitHub info: PR 527

Version 1.0.0 (2023-01-31)

  • Official release!
  • GitHub info: PR 521

Version 0.4.17 (2023-01-31)

  • Adds a tutorial on calibration
  • Small changes to parameter values
  • GitHub info: PR 520

Version 0.4.16 (2023-01-30)

  • Change to natural history, including computation of transformation based upon time with dysplasia
  • Addition of cellular immunity to moderate progression in a secondary infection
  • Default parameter changes and some small typo/bug fixes
  • GitHub info: PR 513

Version 0.4.15 (2023-01-13)

  • Fixed bug in intervention and analyzer initialization
  • GitHub info: PR 511

Version 0.4.14 (2023-01-11)

  • Add Sweep class
  • GitHub info: PR 431

Version 0.4.13 (2023-01-09)

  • Dysplasia percentages are now tracked throughout agent lifetimes, and CIN grades are defined as properties based on these percentages
  • Removes all genotypes aside from HPV 16, 18 and a composite ‘other high risk’ genotype from the defaults
  • GitHub info: PR 507

Version 0.4.12 (2023-01-02)

  • Adds documentation and examples for screening algorithms.
  • GitHub info: PR 505

Version 0.4.11 (2022-12-21)

  • Adds colposcopy and cytology testing options, along with default values for screening sensitivity and specificity.
  • Adds a clearance probability for treatment to control the % of treated women who also clear their infection
  • Removes use_multiscale parameter and sets ms_agent_ratio to 1 by default
  • GitHub info: PR 497

Version 0.4.10 (2022-12-19)

  • Change the seed used for running simulations to avoid having random processes in the model run sometimes being correlated with population attributes
  • Deprecate Sim.set_seed() - use hpu.set_seed() instead
  • Added hpvsim.rootdir to provide a convenient absolute path to the
  • Added equality operator for Result objects
  • Exporting simulation results to JSON now includes 2D results (e.g., by genotype)
  • age_pyramid and age_results analyzer argument changed from datafile to data since this input supports both passing in a filename or a dataframe
  • GitHub info: PR 485

Version 0.4.9 (2022-12-16)

  • Added in high- and low-grade lesions to type distribution results
  • Changes default duration and rate of dysplasia for hr HPVs
  • GitHub info: PR 479

Version 0.4.8 (2022-12-14)

  • Small bug fix to re-enable plots of cytology outcomes by genotype
  • GitHub info: PR 484

Version 0.4.7 (2022-12-13)

  • Migration is now modeled by finding mismatches between the modeled population size by age and data on population sizes by age (previously, this adjustment was done for the overall population rather than by age bucket).
  • GitHub info: PR 479

Version 0.4.6 (2022-12-12)

  • Changes to several default parameters: default genotypes are now 16, 18, and other high-risk; and default hpv control prob is now 0.
  • Results now capture infections by age and type distributions.
  • Adds age of cancer to analyzer
  • Changes to default plotting styles
  • Various bugfixes: prevents immunity values from exceeding 1, ensures people with cancer aren’t given second cancers
  • GitHub info: PR 458

Version 0.4.5 (2022-12-06)

  • Removes default screening products pending review
  • GitHub info: PR 464

Version 0.4.4 (2022-12-05)

  • Changes to progression to cancer – no longer based on clinical cutoffs, now stochastically applied by genotype to CIN3 agents
  • GitHub info: PR 430

Version 0.4.3 (2022-12-01)

  • Fixes bug with population growth function
  • GitHub info: PR 459

Version 0.4.2 (2022-11-21)

  • Changes to parameterization of immunity
  • GitHub info: PR 425

Version 0.4.1 (2022-11-21)

  • Fixes age of migration
  • Adds scale parameter for vital dynamics
  • GitHub info: PR 423

Version 0.4.0 (2022-11-16)

  • Adds merge method for scenarios and fixes printing bugs
  • GitHub info: PR 422

Version 0.3.9 (2022-11-15)

  • Simplifies genotype initialization, adds checks for HIV runs.
  • Since the last release, changes were also made to virological clearance rates for people receiving treatment - previously all treated people would clear infection, but now some may control latently instead.
  • GitHub info: PRs 421 and 420

Version 0.3.8 (2022-11-02)

  • Store treatment properties as part of sim.people
  • GitHub info: PR 413

Version 0.3.7 (2022-11-01)

  • Fix to ensure consistent results for the number of txvx doses
  • GitHub info: PR 411

Version 0.3.6 (2022-11-01)

  • Fix bug related to screening eligibility. NB, this has a sizeable impact on results - screening strategies will be much more effective after this fix.
  • GitHub info: PR 396

Version 0.3.5 (2022-10-31)

  • Store stocks related to interventions
  • GitHub info: PR 395

Version 0.3.4 (2022-10-31)

  • Bugfixes for therapeutic vaccination
  • GitHub info: PR 394

Version 0.3.3 (2022-10-30)

  • Changes to therapeautic vaccine efficacy assumptions
  • GitHub info: PR 393

Version 0.3.2 (2022-10-26)

  • Additional tutorials and minor release tidying
  • GitHub info: PR 380

Version 0.3.1 (2022-10-26)

  • Fixes bug with screening
  • Increases coverage of baseline test
  • GitHub info: PR 373

Version 0.3.0 (2022-10-26)

  • Implements multiscale modeling
  • Minor release tidying
  • GitHub info: PR 365

Version 0.2.11 (2022-10-25)

  • Changes the way dates of HPV clearance are assigned to use durations sampled
  • GitHub info: PR 374

Version 0.2.10 (2022-10-24)

  • Fixes bug with treatment
  • GitHub info: PR 354

Version 0.2.9 (2022-10-18)

  • Prevents infectious people from being passed to People.infect()
  • Fixes bugs with initialization within scenario runs
  • Remove ununsed prevalence results
  • GitHub info: PR 338

Version 0.2.8 (2022-10-17)

  • Fixes bug with intervention year interpolation
  • Changes reactivation probabilities to annual, not per time step
  • Refactor prognoses calls
  • GitHub info: PR 338

Version 0.2.7 (2022-10-14)

  • Adds robust relative paths via hpv.datadir
  • GitHub info: PR 333

Version 0.2.6 (2022-10-12)

  • Removes Numba since slower for small sims and only 10% faster for large sims.
  • Moves functions from utils.py into people.py, sim.py, and population.py.
  • GitHub info: PR 326

Version 0.2.5 (2022-10-07)

  • Adds people filtering (NB: not used, and later removed).
  • Fixes bug with print(sim) not working.
  • Adds baseline tests.
  • GitHub info: PR 310

Version 0.2.4 (2022-10-07)

  • Changes to dysplasia progression parameterization
  • Adds a new implementation of HPV natural history for HIV positive women
  • Note: HIV was added since the previous version
  • GitHub info: PR 304

Version 0.2.3 (2022-09-01)

  • Adds a use_migration parameter that activates immigration/emigration to ensure population sizes line up with data.
  • Adds simple data versioning.
  • GitHub info: PR 279

Version 0.2.2 (2022-08-22)

  • Separates out the Calibration class into a separate file and to no longer inherit from Analyzer. Functionality is unchanged.
  • GitHub info: PR 255

Version 0.2.1 (2022-08-19)

  • Improves calibration to enable support for MySQL.
  • Fixes plotting bug.
  • GitHub info: PR 253

Version 0.2.0 (2022-08-19)

  • Fixed tests and data loading logic.
  • GitHub info: PR 251

Version 0.1.0 (2022-08-01)

  • Updated calibration.
  • GitHub info: PR 215

Version 0.0.3 (2022-07-18)

  • Updated data loading scripts.
  • GitHub info: PR 156

Version 0.0.2 (2022-06-15)

  • Made into a Python module.
  • GitHub info: PR 64

Version 0.0.1 (2022-04-04)

  • Initial version.