# How to make a wavy surface in Inkscape?

I have made this 3d rectangular shape in Inkscape.

I want to make the top (lightest) surface "wavy", with some hills and valleys, similar to this image.

I have tried free hand drawing one side and using semi-circles to make the wave, but neither works very well.

Is there a filter or tool in Inkscape that can achieve this kind of surface?

• Inkscape is not really a 3D drawing tool. Draw a rectangle with wavy sides and add a gradient on the top. Can we see one of your attempts? – Luciano Jun 25 '20 at 16:21
• Inkscape can't do proper 3D work, it's not designed for that. Sure, you could create something like this using gradient fills and clipping masks, but it would be an awful lot of trouble to go to. I'd use 3D modelling software for this instead. Try Blender, it's free and Open Source, and there's a Blender Stack Exchange if you get stuck. – Billy Kerr Jun 25 '20 at 18:24
• @BillyKerr well i would have to disagree that this is particularily hard to do in 2D. In this case as hard as in 3D. But with a much lower learnin curve. Though exactly whats in the image not a step further. – joojaa Jun 25 '20 at 19:56

It's not difficult, it's only tiresome. And you cannot get another view except by starting from the beginning.

Here's an explanation how to draw a small part of the wavy top plate and how to make it bigger. Start by drawing a circle and a square around it. The square is not used as a part, it only shows the projection somehow better than the circle. Convert the circle to path to get an editable Bezier curve.

Skew vertically and squeeze horizontally the shapes until they look a side of approximately isometric cube which has a circle drawn on it. A purist would check the transformation from a descriptive geometry textbook or more likely he would remember it.

In the right the formed ellipse is split at its four nodes to separate pieces to get some building material.

Make copies of the ellipse segments and draw a line+multiple copies to get the outline of one wave:

Split the ellipse segments at the visible region borders and join parts to closed shapes:

(I must admit that something like Ctrl+J or more likely the Shape Builder from Illustrator's repertoire would be welcome, but joining is well possible in Inkscape; one must only be a little more patient)

Coloring the parts with gradients is essential for the appearance. These gradients are simple which makes the surfaces look smooth and non-glossy. I guess finding good gradients are the most difficult part.

The underside is not needed in your case which makes the coloring simpler.

The wave can be stretched wider by moving all nodes in one end to the same direction further:

More than one wave can be chained:

Here we have the underside a little visible. The two narrow pieces are actually the same shape rotated 180 degrees to get continuous coloring.

NOT ASKED: Many of us like to say "Get 3D!". It really can make the geometry fast.

In 3D you extrude a rectangle to get the solid block:

In CAD programs (like in this freeware) one draws to one side the wave profile for cutting. This is a random spline which came out with clicks. As well one could draw arcs like in your example:

Then he pushes the extras over the board:

The result can be exported to be used in 2D drawing as a bitmap or non-colored wireframe. The latter is vector. 3D programs do not generate vector images with gradient shading or at least I haven't one which can do it.

Photorealistic high resolution rendering with plausible materials and adjustable lights is possible, but do not expect it's available in entry level 3D programs.

My screenshots are taken from DesignSpark Mechanical (freeware).

I'd use a pattern-along-path effect for the two wavy boundaries of the 'roof', an envelope effect for the shearing, and a reflecting gradient for the shading.

If one invests more time into it than I did, the result will be better than this: