In electrostatic situations and in steady-state circuits, charges on the surface of a conductor contribute significantly to the net electric field inside the conductor. These charges build up quickly due to transient currents that are initiated by the presence of external charged objects or objects such as batteries that maintain a charge separation. We describe an algorithm for computing the detailed surface charge distributions in equilibrium electrostatic situations and in steady-state DC circuits, and discuss the results of our computations of surface charge distributions for several systems. The results show that in simple DC circuit geometries a roughly constant gradient of surface charge plays a dominant role in establishing the net field inside circuit elements. Three-dimensional visualization contributes to new insights into surface charge distributions on circuit elements.