def METHOD_NAME():
    import bpy
    scene = bpy.context.scene
    ROUND = 4
    def matrix2str(matrix):
        return "".join([str(round(axis, ROUND)) for vector in matrix for axis in vector]).encode('ASCII')
    def coords2str(seq, attr):
        return "".join([str(round(axis, ROUND)) for vertex in seq for axis in getattr(vertex, attr)]).encode('ASCII')
    import hashlib
    md5 = hashlib.new("md5")
    md5_update = md5.update
    for obj in scene.objects:
        md5_update(matrix2str(obj.matrix_world))
        data = obj.data
        if type(data) == bpy.types.Mesh:
            md5_update(coords2str(data.vertices, "co"))
        elif type(data) == bpy.types.Curve:
            for spline in data.splines:
                md5_update(coords2str(spline.bezier_points, "co"))
                md5_update(coords2str(spline.points, "co"))
    return md5.hexdigest()