matlab
t = 0:pi/50:2*pi;
[x, y, z] = cylinder(2+sin(t));

figure
surf(x, y, z, 'LineStyle', 'none', 'FaceColor', 'interp')
colormap('summer')
% Turn off the axis and the grid
axis square
axis off; grid off
plot_mesh

matlab
light('Position',[10 0 0],'Style','local')
light('Position',[10 10 0],'Style','local')
light('Position',[10 10 10],'Style','local')
plot_mesh

matlab
saveas(gca,'result.png')

## Need better results? However, MATLAB does not support realistic rendering. We can generate Blender script to render it.