2019-11-18 19:57:01 -0600 received badge ● Popular Question (source) 2012-03-01 04:48:47 -0600 commented answer using @interact You are awesome 2012-03-01 04:48:32 -0600 marked best answer using @interact You just need to use the show command to force Sage to show the plot. The code below works for me. @interact def _(center =6 -x^2, spin = x): var('u') var('t') r(x) = abs(spin(x) - center(x)) p=parametric_plot3d((t, r(t)*sin(u)+center(t), r(t)*cos(u)), (u, 0, 2*pi), (t, 0, 2), mesh=True) show(p)  2012-03-01 04:48:32 -0600 received badge ● Scholar (source) 2012-03-01 04:48:24 -0600 received badge ● Supporter (source) 2012-02-29 08:55:20 -0600 asked a question using @interact I have this code which works just fine and produces an image: var('u') center(x) =sqrt(x) spin(x) = 2- 1/4 * x^2 r(x) = abs(spin(x) - center(x)) parametric_plot3d((x, r(x)*sin(u)+center(x), r(x)*cos(u)), (u, 0, 2*pi), (x, 0, 2), mesh=True)  However, I would like to use a @interact to be able to change the functions named center and spin. I tried this (and a few variations) @interact def _(center =6 -x^2, spin = x): var('u') var('t') r(x) = abs(spin(x) - center(x)) parametric_plot3d((t, r(t)*sin(u)+center(x=t), r(t)*cos(u)), (u, 0, 2*pi), (t, 0, 2), mesh=True)  and while I don't get an error, I also don't get a picture for some reason. Any suggestions?