License + bundled-data inventory¶
vibe-qc is distributed under the
Mozilla Public License 2.0.
The full license text lives in the repository root as
LICENSE.
This page covers three related but distinct things, in the order users tend to ask:
vibe-qc’s own license (your right to use it).
Linked native libraries (whose licenses transitively bind any binary distribution of vibe-qc).
Bundled data — basis sets, ECP libraries, and external structures / reference data fetched by
vqfetch.
If you want the legal short version: vibe-qc itself is MPL 2.0 and you can use it freely in academic and commercial work. The combined binary that links FFTW3 is effectively GPL v2 (the restriction comes from FFTW, not from us); see FFTW: GPL v2 dependency below.
1. vibe-qc’s own license — MPL 2.0¶
vibe-qc’s source code is released under the Mozilla Public License Version 2.0. What that means in practice:
You can use vibe-qc in commercial and non-commercial projects.
If you modify vibe-qc’s own source files and redistribute them, your modifications to those files must be released under MPL 2.0. You don’t have to open-source code that merely uses vibe-qc.
No patent traps: MPL 2.0 includes an explicit patent grant.
No warranty — see the license text for the usual limitations of liability.
MPL 2.0 is GPL-compatible (vibe-qc has no “Incompatible With Secondary Licenses” notice), so vibe-qc source can be combined with GPL’d code into a “Larger Work” under MPL 2.0 § 3.3.
2. Linked native libraries¶
vibe-qc dynamically links the following native libraries at runtime. Their licenses transitively bind any binary distribution of vibe-qc.
Library |
License |
Source |
Linkage |
|---|---|---|---|
LGPL 3.0 (library) + GPL 3.0 (compiler) |
dynamic |
||
MPL 2.0 |
dynamic |
||
MPL 2.0 |
header-only |
||
BSD 3-Clause |
dynamic |
||
BSD 3-Clause |
header-only |
||
GPL v2 or later (commercial alt available) |
dynamic |
||
MIT |
dynamic |
||
libcerf (in libecpint) |
MIT |
static (in libecpint) |
|
pugixml (in libecpint) |
MIT |
static (in libecpint) |
|
BLAS — Apple Accelerate (macOS, default) |
Apple SDK license (system-bundled) |
shipped with macOS, no redistribution |
dynamic (framework) |
BLAS — OpenBLAS (Linux, recommended; system or vendored) |
BSD 3-Clause |
dynamic |
|
BLAS — reference netlib BLAS (Linux fallback) |
modified BSD |
dynamic |
|
LAPACK + LAPACKE — Reference-LAPACK (Linux; bundled inside OpenBLAS when vendored) |
modified BSD |
dynamic |
Note on vendored OpenBLAS (opt-in via
WITH_OPENBLAS=1 ./scripts/setup_native_deps.sh — see
installation): when built from source into
third_party/openblas/install/, the resulting libopenblas.so
bundles netlib LAPACK’s Fortran sources + the LAPACKE C interface.
Both inherit OpenBLAS’s BSD 3-Clause license (it is the
redistributed work). Net license posture is unchanged from a
system-installed OpenBLAS — fully compatible with MPL 2.0.
Compatibility summary:
MPL 2.0 (libxc, Eigen, vibe-qc itself) — fully compatible.
BSD 3-Clause (spglib, pybind11, OpenBLAS) — fully compatible (permissive).
Modified BSD (reference LAPACK / LAPACKE / netlib BLAS) — fully compatible (permissive, with a no-endorsement clause).
MIT (libecpint, libcerf, pugixml) — fully compatible (permissive).
LGPL 3.0 (libint library) — compatible via dynamic linking, which is the LGPL’s intended use. Static linking would require either (a) supplying object files for relinking or (b) releasing the whole work under LGPL. We dynamic-link; no static-linking case exists.
GPL v2 or later (FFTW3) — see warning below.
Apple SDK license (Accelerate framework, macOS-only) — the framework ships with macOS, is not redistributed with vibe-qc, and is only linked when vibe-qc itself is built and run on macOS. No transitive license burden.
FFTW: GPL v2 dependency — the binary distribution caveat¶
This matters for you only if you want to redistribute vibe-qc binaries (or a bundled application that embeds vibe-qc). It does not affect:
Academic users running vibe-qc on their own data.
Source-code distribution of vibe-qc itself (still MPL 2.0).
Modifying vibe-qc and using your modified version internally.
But it does affect:
Anyone shipping a precompiled binary of vibe-qc (including Conda / PyPI wheels that bake in
libfftw3.so) — the combined binary is effectively GPL v2 or later because FFTW’s GPL terms govern the linked work.Anyone wanting to embed vibe-qc in a closed-source product.
The mechanism is standard GPL-vs-MPL combination: vibe-qc’s MPL 2.0 source is GPL-compatible (no “Incompatible With Secondary Licenses” notice), so the combined work can be distributed, but recipients receive the combined work under both MPL (for the vibe-qc parts) and GPL (for the whole combined binary, because FFTW dominates).
FFTW commercial license: MIT’s Technology Licensing Office sells a non-GPL commercial FFTW license (see FFTW License page). This is an option for commercial redistribution, but the price makes it impractical for hobby projects.
Roadmap: a future minor release will add a build-time option
to swap FFTW3 for pocketfft
(BSD 3-Clause) or KissFFT
(BSD 3-Clause) so binary distribution can be GPL-free for
commercial users. Tracked as roadmap entry “FFT backend
abstraction” in docs/roadmap.md (post-v1.0 milestone).
3. Bundled data¶
vibe-qc ships several kinds of data alongside the source:
Basis sets in
python/vibeqc/basis_library/(basis/from libint upstream +custom/for vibe-qc’s pob-* additions).ECP libraries in
third_party/libecpint/install/share/libecpint/xml/(Stuttgart-Köln MDF + LANL families).Reference data fetched at runtime by
vqfetch(no bundled data; pulled on demand from external sources).MACE foundation-model weights fetched at runtime by the optional
[mace]extra (no bundled data; pulled on demand into the XDG cache). Covered in MACE below.
Each is covered separately.
MACE — optional ML interatomic potential ([mace] extra)¶
method="mace" interfaces ACEsuit MACE,
a pre-trained machine-learning interatomic potential, via the
optional [mace] extra (pip install 'vibe-qc[mace]'). MACE is
not in the default install and is not linked into the vibe-qc
binary — none of the licenses below bind a normal vibe-qc distribution;
they apply only to a user who opts in. (Python ≤3.13 only; see the
roadmap MACE entry.)
Code — the [mace] extra pulls these Python packages:
Package |
License |
|---|---|
MIT |
|
BSD-3-Clause |
|
MIT |
All permissive and MPL-2.0-compatible.
Foundation-model weights — fetched on demand, never bundled. The
MACE code is MIT, but the trained weights are licensed separately
and download on first use into the XDG cache (~/.cache/mace/, the
vqfetch-style on-demand pattern); vibe-qc ships none of them:
Model family |
License |
Commercial use |
|---|---|---|
MACE-MP-0 / MPA-0 (materials) |
MIT |
✅ yes |
MACE-OFF23 (organic) |
ASL |
❌ academic only |
MACE-OMAT-0 / MATPES / MH / MDP |
ASL |
❌ academic only |
The Academic Software License (ASL)
is a GPLv2-derived non-commercial license. vibe-qc’s default model
is the MIT MACE-MPA-0, and the current implementation wires only
that model — so no ASL weights can be fetched yet. A later milestone
(M2) adds per-model selection with the ASL models gated behind an
explicit non-commercial acknowledgment, so a commercial user cannot
pull them inadvertently. Citation: a method="mace" run
auto-emits the MACE method paper + the foundation-model paper to its
.bibtex / .references — cite them in published work.
3a. Bundled basis sets¶
python/vibeqc/basis_library/
├── basis/ ← assembled from libint 2.13.1 upstream + custom overlay
├── custom/ ← source of truth for vibe-qc's own additions
└── README.md
basis/ — inherited from libint 2.13.1¶
The 142 .g94 files in basis/ are a curated subset of the
450+ basis sets that ship in the libint 2.13.1 upstream
distribution at share/libint/2.13.1/basis/. We inherit
libint’s distribution decisions: if libint ships a basis set,
vibe-qc redistributes it under the same terms libint
redistributes it under (LGPL 3.0 for the library, basis sets
themselves typically inherited from the
Basis Set Exchange).
Citation requirement. The .g94 file headers preserve the
original publication references (e.g. ANO-RCC carries a 6-line
reference list naming Widmark, Roos, Malmqvist, Veryazov,
Lindh). Users must cite the originating publication for any
basis set used in published work — this is a community norm,
not a license requirement. The vibe-qc reflexive
vibeqc.print_banner() does not currently print
the basis-set citation; printing it is queued as a v0.x.x
roadmap item.
Per-family citation hints (extend with the .g94 file’s
own header for the authoritative reference):
Family |
Per-family citation |
|---|---|
sto-Ng |
Hehre, Stewart, Pople, J. Chem. Phys. 51, 2657 (1969) |
6-31g family |
Hehre, Ditchfield, Pople, J. Chem. Phys. 56, 2257 (1972); Hariharan, Pople, Theor. Chim. Acta 28, 213 (1973) |
6-311g family |
Krishnan, Binkley, Seeger, Pople, J. Chem. Phys. 72, 650 (1980) |
cc-pVxZ family |
Dunning, J. Chem. Phys. 90, 1007 (1989); Kendall, Dunning, Harrison, J. Chem. Phys. 96, 6796 (1992) |
def2 family |
Weigend, Ahlrichs, Phys. Chem. Chem. Phys. 7, 3297 (2005); Weigend, Phys. Chem. Chem. Phys. 8, 1057 (2006) |
ANO-RCC family |
Multiple — see the per-element references inside |
RIFIT / JKFIT auxiliaries |
Weigend, Phys. Chem. Chem. Phys. 8, 1057 (2006); Hellweg et al. Theor. Chem. Acc. 117, 587 (2007); Eichkorn et al. Theor. Chem. Acc. 97, 119 (1997) |
custom/ — vibe-qc’s own additions (Bredow-group pob suite)¶
Three custom basis sets ship in custom/. These are
originated by Mike Peintinger (vibe-qc’s author / current
maintainer) and Tilo Bredow’s group at the University of Bonn,
either as PhD work or as collaborator-level contributions. No
external license clearance is required.
File |
Citation |
|---|---|
|
M. F. Peintinger, D. Vilela Oliveira, T. Bredow, J. Comput. Chem. 34, 451 (2013). DOI:10.1002/jcc.23153 |
|
D. Vilela Oliveira, J. Laun, M. F. Peintinger, T. Bredow, J. Comput. Chem. 40, 2364 (2019). DOI:10.1002/jcc.26013 |
|
J. Laun, T. Bredow, J. Comput. Chem. 42, 1064 (2021). DOI:10.1002/jcc.26521 |
Source URL (Bredow group archive):
https://www.chemie.uni-bonn.de/bredow/de/software/pob-tzvp-tar.gz.
The bundled .g94 files reproduce this archive’s content with
minor formatting normalisation.
BSE-fetched basis sets — v0.9.0 (148 .g94 files from the Basis Set Exchange)¶
The basissetdev branch carries 148 basis-set .g94 files in
python/vibeqc/basis_library/custom/ fetched from the
Basis Set Exchange (BSE) on
2026-05-08, now shipping in v0.9.0.
Legal basis for redistribution¶
Basis-set parameters — lists of Gaussian exponents and contraction coefficients — are numerical data, not creative expression. Under U.S. copyright law, facts and data are not copyrightable (Feist Publications, Inc. v. Rural Telephone Service Co., 499 U.S. 340 (1991)). The BSE project itself states this explicitly in its documentation: the basis-set parameters are scientific data extracted from the peer-reviewed literature and are treated as public-domain facts; the BSE’s BSD-3-Clause license covers the software (the website, API, and curation infrastructure), not the numerical data.
This is the established norm in computational chemistry: every major quantum-chemistry code (PySCF, Psi4, NWChem, ORCA, Gaussian, Q-Chem, Molpro, GAMESS) redistributes basis-set parameters obtained from the BSE or directly from the originating publications without separate licensing agreements.
Attribution — our obligations¶
Although the data are not copyright-encumbered, scientific
attribution is mandatory. Every .g94 file shipped by vibe-qc
carries a header crediting the BSE source and (where available) the
originating publication. Users are required to cite the originating
publication for any basis set they use in published work; the
canonical references are surfaced through the citation database at
python/vibeqc/output/citations/database.toml (route basis_sets).
Publisher policies for supporting information¶
All 148 files originate from peer-reviewed publications whose supporting information (SI) includes the basis-set parameters:
Publisher |
SI redistribution policy |
Representative journals |
|---|---|---|
American Chemical Society (ACS) |
SI is supplementary material accompanying the article; redistribution of factual data within SI is standard practice |
J. Chem. Theory Comput., J. Phys. Chem., J. Am. Chem. Soc. |
American Institute of Physics (AIP) |
SI is part of the published record; AIP’s author rights permit reuse of factual data |
J. Chem. Phys. |
Wiley |
SI accompanies the article; redistribution of extracted data is standard in the field |
J. Comput. Chem., Int. J. Quantum Chem., Angew. Chem. |
Royal Society of Chemistry (RSC) |
SI is supplementary material; RSC’s author re-use rights cover factual data |
Phys. Chem. Chem. Phys. |
Springer / Czech Academy |
SI data is part of the published record |
Theor. Chem. Acc., Collect. Czech. Chem. Commun. |
Per-family inventory¶
Family |
Files |
First author (year) |
Journal |
Publisher |
|---|---|---|---|---|
Jensen pcseg-{0..4}, aug-pcseg-{0..4} |
10 |
Jensen (2014) |
JCTC |
ACS |
Jensen pc-{0..4}, aug-pc-{0..4} |
10 |
Jensen (2001–2002) |
J. Chem. Phys. |
AIP |
Pople diffuse (6-31+G**, 6-311+G**, etc.) |
5 |
Ditchfield/Hehre/Pople (1971); Frisch/Pople/Binkley (1984) |
J. Chem. Phys. |
AIP |
Pople RI-J auxiliary |
2 |
Weigend (2006) |
PCCP |
RSC |
Karlsruhe def2 3c carriers |
2 |
Brandenburg et al. (2018) |
J. Chem. Phys. |
AIP |
Karlsruhe dhf-* (Dirac-Hartree-Fock) |
6 |
Weigend/Baldes (2010) |
J. Chem. Phys. |
AIP |
Karlsruhe x2c-* (exact two-component) |
3 |
Pollak/Weigend (2017) |
JCTC |
ACS |
Grimme vDZP (omegaB97X-3c carrier) |
1 |
Muller/Hansen/Grimme (2023) |
J. Chem. Phys. |
AIP |
LANL ECP family |
6 |
Hay/Wadt (1985) |
J. Chem. Phys. |
AIP |
Dunning cc-pV(n+d)Z + aug- |
5 |
Dunning/Peterson/Wilson (2001) |
J. Chem. Phys. |
AIP |
Dunning jul-/jun-cc-pV(n+d)Z |
4 |
Papajak/Truhlar (2010) |
JCTC |
ACS |
Dunning cc-pCV*Z + aug- |
6 |
Woon/Dunning (1995) |
J. Chem. Phys. |
AIP |
ANO-RCC contracted |
5 |
Roos et al. (2004) |
J. Phys. Chem. A |
ACS |
ANO-R (Zobel-Widmark-Veryazov) |
5 |
Zobel et al. (2020) |
JCTC |
ACS |
Sadlej pVTZ / Sadlej+ |
2 |
Sadlej (1988) |
Collect. Czech. Chem. Commun. |
Czech Acad. |
Jensen pcS-{0..3}, aug-pcS-{1,2} |
6 |
Jensen (2008) |
JCTC |
ACS |
Jensen pcSseg-{0..2} |
3 |
Jensen (2015) |
JCTC |
ACS |
Jensen pcJ-{0..3} |
4 |
Jensen (2006) |
JCTC |
ACS |
Sapporo-DKH3-{DZP,TZP,QZP} |
3 |
Noro/Sekiya/Koga (2012) |
Theor. Chem. Acc. |
Springer |
Cologne DKH2 |
1 |
Dolg et al. |
— |
— |
SARC-DKH2 / SARC2-QZ* |
3 |
Pantazis/Neese (2009, 2019) |
JCTC |
ACS |
All 142 BSE-fetched files (plus 3 pob- vibe-qc files, separate): numerical data from peer-reviewed publications. Redistribution of basis-set parameters is the established norm in computational chemistry; no file is encumbered by a license that prohibits redistribution as part of a QC code.*#### SAP atomic-potential helpers
Two additional .g94 files in basis/ are not orbital basis
sets — they are tabulated Gaussian expansions of the radial
atomic effective potentials used by the
Superposition of Atomic Potentials (SAP) initial guess
(InitialGuess.SAP, see docs/roadmap.md §G2c). The .g94
container is a convenience: the same loader can read both,
but consuming these files as an orbital basis would produce
nonsense by design — the test suite guards against that via
SAP_PREFIXES = ("sap_",) in
tests/basisset_dev/test_basis_library_load.py.
File |
Reference radial potential |
Use |
|---|---|---|
|
All-electron, Helfem fully-numerical atomic SCF |
non-relativistic default for |
|
Relativistic Dirac–Hartree–Fock, GRASP |
optional default for x2c / DKH calculations |
Citation:
S. Lehtola, L. Visscher, E. Engel, Efficient Implementation of the Superposition of Atomic Potentials Initial Guess for Electronic Structure Calculations in Gaussian Basis Sets, J. Chem. Phys. 152, 144105 (2020). DOI:10.1063/5.0004046
The reference is preserved verbatim in each .g94’s file
header. Published — redistributable under standard scientific-
data conventions; users must cite the originating publication
when reporting energies obtained with the SAP initial guess.
3b. Bundled ECP libraries¶
third_party/libecpint/install/share/libecpint/xml/
├── ecp10mdf.xml ← Stuttgart-Köln MDF, 10-electron core
├── ecp28mdf.xml ← Stuttgart-Köln MDF, 28-electron core
├── ecp46mdf.xml ← Stuttgart-Köln MDF, 46-electron core
├── ecp60mdf.xml ← Stuttgart-Köln MDF, 60-electron core
├── ecp78mdf.xml ← Stuttgart-Köln MDF, 78-electron core
└── lanl2dz.xml ← Los Alamos LANL2DZ
These XML files ship inside the libecpint distribution (MIT-licensed, by Robert A. Shaw). vibe-qc inherits them by linking libecpint and pointing at libecpint’s data directory at runtime. No additional clearance or redistribution decision is made by vibe-qc — we ship what libecpint ships.
Citation requirement (community norm, not legal):
ECP family |
Citation |
|---|---|
Stuttgart-Köln MDF ( |
Originally: Andrae, Häußermann, Dolg, Stoll, Preuß, Theor. Chim. Acta 77, 123 (1990) and family. Per-element references in libecpint’s source repository. |
LANL2DZ ( |
Hay, Wadt, J. Chem. Phys. 82, 270 (1985); 299 (1985); 284 (1985). |
libecpint software |
R. A. Shaw, J. G. Hill, J. Chem. Phys. 147, 074108 (2017); Shaw, J. Chem. Phys. 159, 014103 (2023). |
3c. Dispersion-correction source — fully native, MPL 2.0¶
vibe-qc ships its own implementation of the EEQ atomic-charge model
(cpp/include/vibeqc/eeq_charges.hpp + cpp/src/eeq_charges{,_data}.cpp),
written from the published equations in
Caldeweyher, Ehlert, Hansen, Neugebauer, Spicher, Bannwarth, Grimme, J. Chem. Phys. 150, 154122 (2019), supporting information.
Per-element EEQ parameter values (χ, η, κχ, γ) are scientific data
transcribed from the above paper’s Table S2. Covalent radii are from
Pyykkö & Atsumi, Chem. Eur. J. 15, 188 (2009). Numerical
values from published scientific data are not subject to expressive
copyright; vibe-qc cites the original papers in the relevant headers
(cpp/src/eeq_charges_data.cpp) and in any user-facing output that
quotes EEQ charges.
The Grimme-group reference Fortran implementations
(multicharge,
Apache-2.0; mctc-lib,
LGPL-3.0-or-later) were consulted during development for cross-
validation; no source from either was copied into the tree, and
all files in vibe-qc carry the project’s MPL-2.0 SPDX header.
The optional dftd4 PyPI package (LGPL-3.0-or-later; see the
[dispersion] extras in pyproject.toml) is the current path to
full D4 dispersion energies via vibeqc.compute_d4 /
run_b2plyp(dispersion="d4") / run_dsd_pbep86(dispersion="d4").
This is a Python-side runtime dependency only — the LGPL Fortran
library lives in the dftd4 wheel, never in the vibe-qc tree.
When a native D4 dispersion-energy backend lands (replacing the
optional Python dep), it will be a clean-room reimplementation from
the same paper, MPL 2.0 throughout — matching the EEQ implementation
shipped today.
3d. External data fetched by vqfetch (no bundled data)¶
vqfetch (the v0.8.0 external-data integration) does not
bundle any external data. It pulls structures and reference
data on demand from public databases, caches results
locally with full provenance metadata, and surfaces the
per-record license terms back to the caller.
Source |
Default license per record |
Attribution requirement |
|---|---|---|
COD (Crystallography Open Database) |
CC0 / public domain |
None legally; CIF authorship is preserved in provenance |
CC-BY 4.0 |
Cite Materials Project per their terms |
|
CC-BY 4.0 (data); CC0 (metadata) |
Cite the contributing author + NOMAD as source |
|
OPTIMADE federation |
per-provider |
varies — vqfetch records the provider in provenance |
US Government work — public domain in US |
Cite NIST Standard Reference Database 101 (DOI 10.18434/T47C7Z) |
The provenance contract: every vqfetch-pulled record carries
the source DB, ID, URL, original DOI (where available), license
string, and fetched-at timestamp. This makes per-record
attribution straightforward in publications and avoids any
“where did this come from” auditability gap.
vqfetch does not ship pre-fetched data. The local cache
(~/.cache/vqfetch/ per XDG) is populated only by user
queries. If a user republishes work containing
vqfetch-pulled records, the per-record license is displayed in
the SCF log and recorded in the per-run .system manifest.
3e. Semiempirical (DFTB) parameters — fully native, MPL 2.0¶
vibe-qc ships its own implementation of the DFTB0 / SCC-DFTB
semiempirical methods
(python/vibeqc/semiempirical/,
cpp/src/semiempirical/),
with parameter tables constructed from scratch in
cpp/src/semiempirical/parameters.cpp:
STO exponents from Slater’s rules.
On-site energies from periodic-trend scaling.
Hubbard U from approximate per-element estimates.
Repulsive-pair form R⁻¹² with an original
default_repulsive_Aestimator.
The parameter set covers H – U (87 elements). Zero values
are sourced from dftb.org parameter sets (mio, 3ob,
matsci, etc.) — no redistribution concern. This was confirmed
by the semiempirical chat in the v0.9.0 cycle (commit
2d2c24eb).
Honest scope: these parameters are approximate,
order-of-magnitude — not production-grade DFTB. Intended use
is fast screening and geometry preoptimisation before HF/DFT
refinement. The runtime banner and the .system manifest both
record that vibe-qc is using its in-house parameter set rather
than a published reference. See
docs/semiempirical_stage1_design.md
and docs/semiempirical_roadmap.md
for the full provenance + scope writeup.
Method-paper citations (preserved per .bibtex sibling via
the route methods / dftb in
database.toml):
DFTB0 — Porezag, Frauenheim, Köhler, Seifert, Kaschner, Phys. Rev. B 51, 12947 (1995).
SCC-DFTB — Elstner et al., Phys. Rev. B 58, 7260 (1998).
Slater-rule STO ζ scaffolding — Hehre, Stewart, Pople, J. Chem. Phys. 51, 2657 (1969) (STO-NG context).
The parameter tables themselves are vibe-qc’s own work and ship under MPL-2.0 alongside the rest of the in-tree implementation.
Citing vibe-qc itself¶
A vibe-qc-specific citation will be added once the JCC release paper is published. Until then, please cite:
Repository: https://gitlab.peintinger.com/mpei/vibeqc
Version + DOI: per the
CITATION.cfffile in the repository root.
Plus any basis-set citation + ECP citation + functional citation for the methods you actually used. The citing guide collects the standard set.
Reporting a licensing concern¶
If you spot a licensing gap, an attribution that’s not being surfaced correctly, a basis set we shouldn’t be bundling, or an incompatibility we missed, please email mpei@vibe-qc.com. We take this seriously — vibe-qc is an open-source project run by one person, and getting any of this wrong has real consequences for the project’s ability to be used.