We demonstrate a ray tracing type technique for rendering algebraic surfaces using programmable graphics hardware (GPUs). Our approach allows for real-time exploration and manipulation of arbitrary real algebraic surfaces, with no preprocessing step, except that of a possible change of polynomial basis. The algorithm is based on the blossoming principle of trivariate Bernstein-Bézier functions over a tetrahedron. By computing the blossom of the function describing the surface with respect to each ray, we obtain the coefficients of a univariate Bernstein polynomial, describing the surface's value along each ray. We then use Bézier subdivision to find the first root of the curve along each ray to display the surface. These computations are performed in parallel for all rays and executed on a GPU.The limiting factor for the maximum degree of surface visualization is the number of registers available in each fragment pipeline. Our Nvidia 7800 GPU has 32 four-wide temporary registers, in comparison next generation GPUs (DX10) are expected to have 4096 registers, which will allow us to visualize surfaces of much higher total degree using our current approach.