**Update** Creating a table of data for the evaluated function allows for control of "grid" size and domain which produces the smoothest part once plotted. data = Table[ x*z - y^2, {z, -1, 1, 0.01}, {y, -1, 1, 0.01}, {x, -1, 1, 0.01}]; ListContourPlot3D[data, Contours -> {0}, Mesh -> None, Extrusion -> 0.1, DataRange -> {{-1, 1}, {-1, 1}, {-1, 1}}] [![enter image description here][1]][1] ----------------------------------------------------------------------------- Use the undocumented `Extrusion` option and increase `PlotPoints` for higher resolution: ContourPlot3D[x*z - y^2 == 0, {x, -1, 1}, {y, -1, 1}, {z, -1, 1}, Mesh -> None, Extrusion -> 0.1,PerformanceGoal -> "Quality", PlotPoints -> 500] [![enter image description here][2]][2] [1]: https://i.sstatic.net/CMky7.png [2]: https://i.sstatic.net/FERgj.png