Apparatus ready
Titrant (burette) Flask colour = universal indicator at the current pH
Indicator
pH vs volume of titrant added
Volume added0.00 cm³
pH
% of titre0%
Titre— cm³
pH at ½ titre
Jump per drop*
Burette (titrant)
Burette concentration0.100 mol dm⁻³
Conical flask (analyte)
Flask concentration0.100 mol dm⁻³
Flask volume25.0 cm³
Volume added (drag to scrub)0.00 cm³
add
Model notes & assumptions

Method. Rather than special-casing "strong acid vs weak base" and so on, the simulation solves one general charge-balance equation for [H⁺] at every volume added, built from whichever species are actually present. This is the same systematic-equilibrium approach used in quantitative analytical chemistry, and it reduces to the familiar textbook formulas automatically — a strong acid/strong base pair gives the simple sharp jump, a weak acid with strong base gives a buffered region with the equivalence point above pH 7, and so on — without those cases being coded separately.

Constants used (25 °C). Kw = 1.0×10⁻¹⁴; ethanoic acid Ka = 1.74×10⁻⁵ (pKa = 4.76); ammonia Kb = 1.8×10⁻⁵ (pKa of NH₄⁺ = 9.25). Sulfuric acid's first proton is treated as fully dissociated (strong); its second (HSO₄⁻ ⇌ H⁺ + SO₄²⁻) is modelled as a genuine weak equilibrium with Ka2 = 1.2×10⁻² rather than assumed complete — real enough that concentrated H₂SO₄ shows a little buffering near pH 2 that a "both protons strong" model would miss.

Titre. The titre is defined stoichiometrically — the volume at which moles of acidic H⁺ equivalents added equal the moles of basic OH⁻ equivalents (or vice versa) initially in the flask, using 2 equivalents per mole for H₂SO₄ and 1 for everything else. If you pick two acids (or two bases) for both vessels there's no real neutralisation, so this "titre" just marks where equal equivalents have mixed — the curve stays gentle throughout, which is itself the point: only a genuine acid + base pair produces a sharp end-point.

The x-axis is a fixed 0–50 cm³, matching a standard burette's capacity, regardless of what's chosen. Raising or lowering a concentration doesn't rescale the graph — it slides the steep jump left or right along that fixed scale, exactly like it would on paper using a real burette. If your choices push the titre past 50 cm³, the stats panel flags it: that burette would run dry before reaching equivalence.

Simplifications. Activity coefficients are ignored (concentrations are treated as activities, fine at school-lab dilutions); temperature is fixed at 25 °C; the "jump per drop" reading uses a 0.05 cm³ drop regardless of the volumes chosen.