A k-uniform semi-algebraic hypergraph H is a pair (P, E), where P is a subset of R d and E is a collection of k-tuples {p 1 , . . . , p k } ⊂ P such that (p 1 , . . . , p k ) ∈ E if and only if the kd coordinates of the p i -s satisfy a boolean combination of a finite number of polynomial inequalities. The complexity of H can be measured by the number and the degrees of these inequalities and the number of variables (coordinates) kd. Several classical results in extremal hypergraph theory can be substantially improved when restricted to semialgebraic hypergraphs.Substantially improving a theorem of Fox, Gromov, Lafforgue, Naor, and Pach, we establish the following "polynomial regularity lemma": For any 0 < ε < 1/2, the vertex set of every k-uniform semi-algebraic hypergraph H = (P, E) can be partitioned into at most (1/ε) c parts P 1 , P 2 , . . ., as equal as possible, such that all but at most an ε-fraction of the k-tuples of parts (P i1 , . . . , P ik ) are homogeneous in the sense that either every k-tuple (p i1 , . . . , p ik ) ∈ P i1 × . . . × P ik belongs to E or none of them do. Here c > 0 is a constant that depends on the complexity of H. We also establish an improved lower bound, single exponentially decreasing in k, on the best constant δ > 0 such that the vertex classes P 1 , . . . , P k of every k-partite k-uniform semi-algebraic hypergraph Any disjoint finite sets P 1 , . . . ,with the property that every k-tuple formed by taking one point from each P i has the same order type.The above techniques carry over to property testing. We show that for any typical hereditary hypergraph property Q, there is a randomized algorithm with query complexity (1/ε) c(Q) to determine (with probability at least .99) whether a k-uniform semi-algebraic hypergraph H = (P, E) with constant description complexity is ε-near to having property Q, that is, whether one can change at most ε|P | k hyperedges of H in order to obtain a hypergraph that has the property. The testability of such properties for general k-uniform hypergraphs was first shown by Alon and Shapira (for graphs) and by Rödl and Schacht (for k > 2). The query complexity time of their algorithms is enormous, growing considerably faster than a tower function.