A pooling space is defined to be a ranked partially ordered set with atomic intervals. We show how to construct non-adaptive pooling designs from a pooling space. Our pooling designs are e-error detecting for some e; moreover, e can be chosen to be very large compared with the maximal number of defective items. Eight new classes of non-adaptive pooling designs are given, which are related to the Hamming matroid, the attenuated space, and six classical polar spaces. We show how to construct a new pooling space from one or two given pooling spaces.