# ScientificFitting.jl v0.1: explicit uncertainties, diagnostics, profiles, and Makie figures

**URL:** https://discourse.julialang.org/t/scientificfitting-jl-v0-1-explicit-uncertainties-diagnostics-profiles-and-makie-figures/139223
**Category:** Package Announcements
**Tags:** package, statistics, curve-fitting, experimentation
**Created:** [September 5, 2026, 1:35pm UTC](https://discourse.julialang.org/t/scientificfitting-jl-v0-1-explicit-uncertainties-diagnostics-profiles-and-makie-figures/139223 "2026-09-05T13:35:46Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![Amin-El-Sayed](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/amin-el-sayed/32/223811_2.png) [@Amin-El-Sayed](https://discourse.julialang.org/u/Amin-El-Sayed)
#### Post date: [September 5, 2026, 1:35pm UTC](https://discourse.julialang.org/t/scientificfitting-jl-v0-1-explicit-uncertainties-diagnostics-profiles-and-makie-figures/139223/1 "2026-09-05T13:35:46Z")

</div>

Hi everyone,

I’ve just released ScientificFitting.jl v0.1, my first public Julia package. It aims to make statistically careful scientific fitting fast to write and enjoyable to use, without hiding uncertainty models or diagnostic evidence when fits become difficult.

```julia-auto
pkg> add ScientificFitting

```

It currently provides weighted nonlinear least squares and likelihood fits, explicit x/y and correlated uncertainties, parameter constraints, multi-dataset fits, actionable diagnostics, profile likelihoods, confidence regions, and optional editable Makie figures. The numerical core works without Makie.

This is intentionally an early work-in-progress release. I would be very happy to hear your thoughts and wishes for future versions, especially from people trying it on real analyses. If you encounter numerical edge cases, unclear diagnostics, awkward API choices, documentation or plotting problems, or a missing scientific workflow, please reply here or open an issue. Contributions and example datasets are very welcome as well.

Two little examples from the docs:

 ![photoelectric_threshold_sans_panel_light](https://global.discourse-cdn.com/julialang/original/3X/6/c/6c263f0689018a2d993c261c954b95d571aeb970.png)

 ![damped_oscillator_decay_tex_plot_light](https://global.discourse-cdn.com/julialang/original/3X/c/e/cea393779c02086b926241724cc07c5626fbed51.jpeg)

---

<div class="post-metadata">

### Author: ![misha\_mikhasenko](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/misha_mikhasenko/32/5060_2.png) [@misha\_mikhasenko](https://discourse.julialang.org/u/misha_mikhasenko)
#### Post date: [September 10, 2026, 8:22am UTC](https://discourse.julialang.org/t/scientificfitting-jl-v0-1-explicit-uncertainties-diagnostics-profiles-and-makie-figures/139223/2 "2026-09-10T08:22:52Z")

</div>

Congratulations with the package,  
and thank you for the work on the open source scientific tools!  
It looks farley sophisticated on statistical analysis. Documentation looks very good.

it would be great to connect it to existing tools, and help the community to navigate in julia fitting landscape.

- Could you please add `## Related package` section with comments?  
I thought of [RooFitLite.jl](https://github.com/JuliaHEP/RooFitLite.jl) – it is a c++ framework ported to Julia. But there must be some julia native tooks for fitting as well.

Other questions,

- is it easy to pass a model from `Distributions.jl` and package of comparable interface (I use [`NumericalDistributions.jl`](https://github.com/mmikhasenko/NumericalDistributions.jl), [`HEPDistriburions.jl`](https://github.com/JuliaHEP/DistributionsHEP.jl))
- is it possible to change minimization engine, to say [`NativeMinuit.jl`](https://github.com/fkguo/NativeMinuit.jl)
- I would love to interface it with [`BuildConstructors.jl`](https://github.com/RUB-EP1/BuildConstructors.jl).

---

<div class="post-metadata">

### Author: ![Amin-El-Sayed](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/amin-el-sayed/32/223811_2.png) [@Amin-El-Sayed](https://discourse.julialang.org/u/Amin-El-Sayed)
#### Post date: [September 10, 2026, 12:24pm UTC](https://discourse.julialang.org/t/scientificfitting-jl-v0-1-explicit-uncertainties-diagnostics-profiles-and-makie-figures/139223/3 "2026-09-10T12:24:21Z")

</div>

Thank you very much! These are very useful suggestions. I think your suggested ecosystem integrations are a great implementation focus for v0.3. I think this might be a viable plan:

- **Related packages:** I will add a short, commented overview, including RooFitLite and other Julia-native tools. ScientificFitting’s focus is a convenient workflow and I will work on connecting more models, measurement uncertainties, fitting, diagnostics, and plots, building on specialized packages.
- **Distributions:** Distributions.jl functions already work through the likelihood callbacks. For v0.3, I’ll add convenient distribution-object and constructor interfaces, with tested examples using NumericalDistributions and DistributionsHEP.
- **Minimizers:** Currently, backend selection is restricted, since I tried building an MVP asap that just gets the essentials done with somewhat decent performance. Seeing use of ScientificFitting.jl in experimental particle physics would be amazing. Therefore, v0.3 will introduce a documented solver-extension interface and make NativeMinuit directly selectable as an optional backend, alongside the existing solvers. Switching backends should preserve the statistical problem and downstream analysis, while enhancing performance for many more special cases.
- **BuildConstructors:** Will use the constructor’s parameter metadata and model-building interface, independently of NativeMinuit, so the same model can work with different compatible solvers.

I’d be very happy to get your ideas on this plan. Further suggestions, problem examples and specific data sets or workflows for benchmarking are always welcome.
