higher frame rate for physics than graphics, possible?

assuming i want a physics simulation which requires collision detection from Panda, and the physics frame rate is “the higher the better”, say 150fps, while the graphics frame rate can’t be much higher than 60.
is it possible to setup Panda so that the collision detection runs several times in each graphics frame?
a function written by myself can be called unlimited times in a graphics frame, but i guess collision detection only returns result once per graphics frame, correct?
if collision detection runs at lower frame rate than my function, then the result of calculation is wrong, so it’s no use to call my function repeatedly in a graphics frame.

You do this by setting max_substeps to something other than 1 in the doPhysics() call and setting stepsize to a fraction of the dt.

thanks for your reply.
but because i don’t want to rely on Bullet Physics, i thought of another approach - stop and resume the “igloop” repeatedly. for example (pseudo code in my custom task ):

( igloop had been got by taskMgr.getAllTasks )

if frame/5*5==frame: taskMgr.remove(igloop)
elif (frame+1)/5*5==frame+1: taskMgr.add(igloop,'igloop')

this is intended to stop igloop at frame 0/5/10/15… and resume igloop at frame 4/9/14/19…
but when i ran taskMgr.add, i got Assertion error at line 224 of asyncTaskManager.cxx (Panda v1.81). what can i do to fix this?

I’d suggest creating two tasks for physics instead of one, rather than try and artificially slow down the igLoop.

because my physics system needs to sync with collision system, running my physics task multiple times while collision system runs only once would lead to error.
i tried to add more collisionloop tasks to taskMgr, but i also got Assertion error at line 224.
in fact, what i need from Panda is the collision system runs at higher frequency than graphics. right now it seems using Bullet Physics is the only way.
Bullet Physics is not bad, just that i want to code a physics system on my own.