use real units
3d guard function