Measuring water quantity with Arduino and water level sensors

Hi guys, I need a little help and want to hear more opinions on my project. I have to measure the quantity(volume) of the water in a cup that holds 1.5L maximum. I have to choose between a variety of sensors like the ultrasonic, pressure, electro-optic level switch, and a capacitive soil moisture sensor. I have to think of an innovative idea for it. I think the ultrasonic one might be the best choice but I also have to find a way to calculate the volume of the water in cups that have irregular forms which is the hard part of the project. If you have any thoughts and ideas I'd be happy to read them :).

I wouldn't calculate, I'd calibrate.

Add water to the cup a known small amount at a time, and measure the distance to the surface. Put them in a lookup table.

Then when operational, measure the distance to the surface and look the quantity up in the table.

Weight is an excellent measure of water volume.

X2 for weighing the vessel . Look up load cells and HX711.

You guys got there before me! :grinning: