code: protected void extractNullPoints( DMatrixRMaj M )
  	{
  		// compute MM and find its null space
  		MM.reshape(M.numRows,M.numRows,false);
  		CommonOps_DDRM.multTransB(M, M, MM);
  
  		if( !solverNull.process(MM,numControl, nullspace))
  			throw new IllegalArgumentException("SVD failed?!?!");
  
  		// extract null points from the null space
  		for( int i = 0; i < numControl; i++ ) {
  			int column = numControl-i-1;
  			for( int j = 0; j < numControl; j++ ) {
  				Point3D_F64 p = nullPts[i].get(j);
  				p.x = nullspace.get(j*3+0,column);
  				p.y = nullspace.get(j*3+1,column);
  				p.z = nullspace.get(j*3+2,column);
  			}
  		}
  	}
docs: Computes M'*M and finds the null space.  The 4 eigenvectors with the smallest eigenvalues are found
  and the null points extracted from them.