Compute with branched surfaces