We describe a perturbation scheme to overcome degeneracies and precision problems for algorithms that manipulate polyhedral surfaces using oating point arithmetic. The perturbation algorithm is simple, easy to program and completely removes all degeneracies. We describe a software package that implements it, and report experimental results. The perturbation requires O(n log 3 n+nDK 2 ) expected time and O(n log n+nK 2 ) working storage, and has O(n) output size, where n is the total number of facets in the surfaces, K is a small constant in the input instances that we have examined, D is a constant greater than K but still small in most inputs, and both might be as large as n in `pathological' inputs. A tradeoff exists between the magnitude of the perturbation and the efficiency of the computation. Our perturbation package can be used by any application that manipulates polyhedral surfaces and needs robust input, such as solid modeling, manufacturing and robotics. We describe an app..