separate CPU geometry calculation