Skeuomorphism - Tips and Tricks

I am interested in learning to create skeuomorphic knobs for my plug-in’s GUI. I have no idea where to start, so any and all resources/suggestions are appreciated!

I really like the look of FabFilter’s Pro-Q 3 (FabFilter Pro-Q 3 - Equalizer Plug-In) and of the Waves Pultec designs (PuigTec EQP-1A + MEQ-5 EQ Plugins | Waves), if that helps to give some direction of what I am thinking. If I could do Pro-Q 3 knobs with a sense of depth of the Pultecs I would be satisfied :slight_smile:


For more complex graphics, it’s usually easier to render from images/vectors than to try and draw them with JUCE’s built-in graphics.

The FabFilter style would be fairly easy to produce with an SVG, the Waves style might be trickier and may be easier with a raster image. Disadvantage of the raster image of course is that they’re not so easy to scale nicely so you may need to render several versions for each size you need.

In the second case I am a fan of a hybrid approach using rendered images and add vector graphics on top for the details and labels, that you want to be sharp / in the foreground.


Check out knobman, it’s software for creating GUI knob images. They have plenty of templates too, including some pultec-style.

Blender is free as well.

I wrote this on Discord last week to a user asking the same thing about 3D knobs.

“For knobs, you can make the knob in 3D, texture it in Blender, then render with ortho camera and an animation for like 25-30 frames(eg rotating 7oclock to 5oclock), export as single png images or whatever, then you can create a texture atlas for those animation frames and load into JUCE with a FilmStrip like component that uses the value to change frames(which changes the rectangles location where you are sampling the knob from on the atlas)”


Updated link from the other thread;

1 Like

Thank you all! I appreciate your help.

I still need to learn how to import an image or vector into my GUI, I am new to this :slight_smile: do you have any tips or tricks for doing so?