По вашему описанию вопроса хочется посоветовать вам найти фрилансера, который возьмется за это.
Если вы умеете писать на C++, можете разобраться с как в glut нарисовать круги и квадраты (шары и паралелепипеды, если вас интересует 3D), то архитектура будет примерно такая.
Есть модель процесса, которая n раз в секунду расчитывает состояние системы. Есть набор пузыерей, на каждом шаге модели вы можете создать новый пузырь у дна с некоторыми начальными параметрами. Так же, для каждого существующего пузыря вы должны рассчитать его новое положение и размер исходя из его предыдущего состояния. Читаем про
скорость всплытия пузырьков, или просто подбираем закон скорости на глаз, если физической точности не требуется.
Так же потребуется некоторое окно, на котором k раз в секунду данные с модели рисуются c помощю glut.