def METHOD_NAME(x,y,z,n,jsig, jsigz, mcp, imageBounds, pixelSize, zb,sliceSize=100):
    #from PYME.Analysis.points import gen3DTriangs
    sizeX = (imageBounds.x1 - imageBounds.x0)/pixelSize
    sizeY = (imageBounds.y1 - imageBounds.y0)/pixelSize
    x = (x - imageBounds.x0)/pixelSize
    y = (y - imageBounds.y0)/pixelSize
    jsig = jsig/pixelSize
    jsigz = jsigz/sliceSize
    z = (z - zb[0])/sliceSize
    sizeZ  = floor((zb[1] + sliceSize - zb[0])/sliceSize)
    im = numpy.zeros((sizeX, sizeY, sizeZ), order='F')
    for i in range(n):
        Imc = numpy.random.rand(len(x)) < mcp
        if type(jsig) == numpy.ndarray:
            print((jsig.shape, Imc.shape))
            jsig = jsig[Imc]
            jsigz = jsigz[Imc]
        #gen3DTriangs.renderTetrahedra(im, x[Imc]+ jsig*scipy.randn(Imc.sum()), y[Imc]+ jsig*scipy.randn(Imc.sum()), z[Imc]+ jsigz*scipy.randn(Imc.sum()), scale = [1,1,1], pixelsize=[1,1,1])
        p = numpy.hstack(((x[Imc]+ jsig*numpy.random.randn(Imc.sum()))[:, None], (y[Imc]+ jsig*numpy.random.randn(Imc.sum()))[:, None], (z[Imc]+ jsigz*numpy.random.randn(Imc.sum()))[:, None]))
        #print p.shape
        RenderTetrahedra(p, im)
    return im/n