your first image is smaller than your column size, therefore img-responsive doesn’t work. img-responsive is essentially max-width:100% and that only prevents your img from getting bigger than the max-width. If your image is already smaller than max-width, it doesn’t care. simplest way is to fix it is to apply width:100%; to figure>img
This is what it looks like after I modified your code here
the grid works just fine, that first image just smaller, which is why you have a bigger white space. Also figure, figure-img, figure-caption are Bootstrap 4 classes. I do not see them bootstrap 3 documentation