def METHOD_NAME(self,time=None):
    """Updates the path from the world.  If the world wasn't a simulator, the time
    argument needs to be provided"""
    if self.sim != None and time == None:
        time = self.sim.getTime()
        self.sim.updateWorld()
    dt = time - self.last_t
    if self.dt == 0:
        self.dt = dt
    if self.dt == 0:
        return
    if abs(dt - self.dt) <= 1e-6:
        dt = self.dt
    numadd = 0
    while dt >= self.dt:
        numadd += 1
        transforms = json.loads(robotsim.ThreeJSGetTransforms(self.world))
        for update in transforms['object']:
            n = update['name']
            mat = make_fixed_precision(update['matrix'],4)
            matpath = self.transforms.setdefault(n,[])
            assert len(matpath) == len(self.rpc)
            lastmat = None
            for m in matpath[::-1]:
                if m != None:
                    lastmat = m
                    break
            if lastmat != mat:
                matpath.append(mat)
            else:
                matpath.append(None)
        self.rpc.append('null')
        dt -= self.dt
        self.last_t += self.dt
    if numadd > 1:
        print "Uneven time spacing, duplicating frame",numadd,"times"