Inkscape Tutorial: Cartoon Fish

vsd_tut_fish_thumbOnce more a beginner tutorial for Inkscape, which results in a cartoon style vector fish.

Techniques demonstrated: Pattern along a Path, Envelope Deformation, Clip Path.

This is a very simple vector illustration that I made a while ago for a children's story.
The design uses very few shapes and is in bright colours. It is easy to draw such a design in Inkscape.

I assume little Inkscape knowledge, and the tutorial should be easy to follow for a beginning Inkscape artist.

Open Inkscape and start with a default document.

I made the drawing on an A4 size paper, but as we draw in a vector editing program, size does not matter. The fish in the final design ended up being about 1/2 page width in size.


Before we start

Inkscape remembers by default the last settings of a tool. Therefore objects you draw may differ from the screenshots in this tutorial. Help on how to correct the most common settings can be found on this page: Inkscape Beginner Tips (opens in a new window).


Swirl Decoration

We start by making the swirl decoration on the fish.

  • Select the Create Spirals tool vsd_spiral_tool from the tool box at the left side of the screen
  • Set the values for Turns, Divergence and Inner Radius to:
  • Click and drag the mouse to create a spiral that looks like this:

The spiral is the basis for the fancy decoration on the fish. We will apply path effects to the shape.


Pattern to a Path

We start by creating the pattern.

  • Select the Rectangle Tool vsd_rectangle_tool from the Tool Box and draw a small rectangle at an empty spot on the canvas.
  • Select the Node Tool vsd_node_tool.
  • The rectangle object must be converted to a path before it can be edited with the Node Tool. This can be done by:
  1. by clicking the Object to Path vsd_object_to_path button in the Node Tool - Tool Control bar, or
  2. selecting Object to path from the Path menu:
  • Select the 2 left outer nodes by either:
  1. dragging a selection window around both nodes, or
  2. select one node, hold down the Shift-key and then select the other node.
  • Add a new node to the selected segment by clicking the Insert New Nodes button vsd_insert_node (shortcut: Insert-key). Your drawing should look like this:
  • Select the top node at the right side of the rectangle, then hold down the CTRL-key and press the Delete-key.


Note: If you try to delete this node with the "Delete Selected Nodes button" Inkscape may try to preserve the shape of the cube. This depends on your Inkscape settings for the Node Tool. Double click the node tool button vsd_node_tool, this will open up the Inkscape Preferences Dialog. The last option "Deleting nodes preserves shape" determines how your node tool behaves. It is up to you how you want this set and you can change it at any time. If you have it set to preserve shape, then use the CTRL-key in combination with the DEL-key to delete a node without preserving the shape (override).

  • Open the Align and Distribute dialog by pressing vsd_align_distribute_dialog (shortcut: Shift+Ctrl+A).
  • Select the single node at the right side and the middle node at the left side of your path. Note: selection order IS important.
  • Align the selected nodes horizontally by clicking this button vsd_align_nodes_middle in the Nodes section of the Align and Distribute dialog. Alignment is done referencing the last selected node. Your path should now look like this:
  • Select the left middle node only, and use the Arrow buttons to move it somewhat to the right side (or use the mouse whilst pressing the Ctrl-key to constraint horizontal movement).


Your drawing should now look like this:


We will use this shape as a pattern along the spiral, but we do not need it to remain on the canvas.

  • Use Ctrl+X to cut it to the clipboard.
    Select the spiral vsd_select_tool.
    Open the path editor via Path > Path Effect Editior on the menu (shortcut: Shift+Ctrl+7).


  • Select "Pattern along a Path" from the drop down box, and click on the "Add" button. The options dialog for this path effect will appear.


  • Click on the Paste Path button vsd_paste_path to paste the current path we have on the clipboard as pattern for the spiral.

We do not need to adjust any other setting for this tutorial, but feel free to tweak the settings to your likings. Some tips:

You can make your pattern a bit slimmer or fatter by adjusting the width setting.
You can edit the path of the pasted pattern at any time by clicking the Edit-on-Canvas button. The pattern will be displayed in the upper left corner of your document, in a green color, and can be edited with the Node Tool vsd_node_tool.


Applying the Envelope path effect

This path effect sometimes shows unexpected results, but it can be used to do quick deformations of objects simulating a bounding box around the object that can be tweaked. Changing node types may cause your object to disappear, so if you intend to experiment with this tool: save your work, remember the undo option (Ctrl+Z) and know that a path effect can be removed from an object at any time.

  • The spiral (with the pattern applied) should still be selected.
  • Add the "Envelope Deformation" path effect to the effects list in the Path Effect Editor. Your object may resize a bit (but that is not important, as we are working with vectors).
  • Click on the "Edit on-canvas" button vsd_edit_on_canvas for the Top Bend Path. A green path existing only of 2 endnodes will highlight at the top of your object.


Now similar to adding nodes to a path before:

  • Select the 2 nodes on the path:
  • Insert a new node by clicking vsd_insert_node on the Node Tool - Tool Control bar(shortcut: Insert-key):
  • Select only the newly added node, and move it a bit upwards. Your drawing should be similar to this:


  • Click "Edit on Canvas" for the Bottom Bend Path, and repeat the above steps with the bottom nodes:



The drawing should look like this:


Path effects are applied directly to a path and they can be edited individually at all times. However, if you want to further manipulate the resulting shape, it is better to apply the path effects permanently.

  • Click on the "object to path" button vsd_object_to_path on the Node Tool - Tool Control bar or select Path > Object to Path from the menu:



The applied effects list in the Path Effect Editor is cleared. The shape is now defined by a single path, but it has more nodes than needed.

  • Simplify by selecting Path > Simplify from the menu (shortcut: Ctrl+L)
Note: most paths can be simplified withouth significant loss of quality after complex operations, and it is a good practice to do this.


The Fish shape

Now that we have completed the stylish decoration for the fish, it would be good to draw the fish itself. Reason for starting with the decoration is that the resulting shape we have now is also used as basic shape for the fish.

  • Make a duplicate of the shape by selecting Edit > Duplicate from the menu (shortcut Ctrl+D). The duplicate is created EXACTLY on top of the original.
    The Node Tool vsd_node_tool should still be selected. Select the 2 nodes as indicated below:


  • Break the path at these nodes by clicking this button vsd_break_path on the Node Tool - Tool Control bar. In the status bar at the bottom of the screen you can read that there are now 2 subpaths:


  • Change the subpaths to individual paths by selecting Path > Break Apart (Shortcut: Shift+Ctrl+K) from the menu.


  • Deselect both paths by clicking on an empty space on the canvas. Then click on the inner path again, it is now clear that the path is cut.


  • Use the select tool vsd_select_tool, and press the Delete-Key to delete the inner path.

At this point you may want to recolor the cut path, to easily see it against the the complete shape. Shift + Click on any colour from the Color Palette. I used green.

Use the Node Tool to select the 2 endnodes of this path.


Join the 2 endnodes with a new segment by clicking on this button vsd_join_endnodes_segment

Your drawing should look similar to below and as you can see the shape follows the outline of the decoration perfectly.


Apply some colour

Apply a nice colour fill to the shape (click with the left mouse button on a colour in the Color Palette). I originally made this illustration in bright pink, but today I go traditionally orange. I changed the outline colour to black (hold down Shift and click with the left mouse button on a colour in the Color Palette).


  • Use the select toolvsd_select_tool.

The shape is on top of the decoration. The order of the objects can be changed by the Page Up- and Page Down-keys.

  • In this case we want to send the shape down, so press the Page Down-key.

It is also a good idea to fill the shape of the decoration.

  • Select the spiral and click with the left mouse button on any colour in the Color Palette at the bottom of the screen. I used white.




The shape of the tail is very simple.

  • Start with the Ellipse Tool vsd_ellipse_tool.
  • Change the settings for this tool to Start = 90 and End = 270:


  • The resulting shape will be a half ellipse:



  • Draw another ellipse that is horizontally squashed over the left outer edge of the halfed ellipe. Reset the Ellipse Tool to a full ellipse with this button vsd_reset_ellipse if needed.


  • Select both shapes and use Path > Difference to cut out the smaller ellipse from the halfed ellipse.


  • Now use the Node Tool vsd_node_tool and push the line segments a bit to make them look a bit more funky.



  • Go back to the Select Tool vsd_select_tool.
  • Give the tail the same fill colour as the fish shape (click with left mouse button on colour in Color Palette).



More tail parts

  • Duplicate the Tail with Ctrl+D. Remember the duplicate is created exactly on top of the original.
  • Open the Transform Dialog from the menu Object > Transform (Shortcut: Shift+Ctrl+M).


  • In the Transform Dialog, select the Scale tab.
  • Tick the "Scale proportionally" checkbox and set the width to 80% (height will follow automatically). Click the Apply button.


  • Make a duplicate of the smaller tail (it should still be selected) and click on the apply button in the Transform dialog again.


  • Change the fill colour of the middle tail object to white.


  • Open the Align and Distribute dialog again (if you closed it) vsd_align_distribute_dialog.
  • Select all the tail objects and align the left sides vsd_allign_left.


It may be necessary to scale the objects a bit further manually or even to use the node tool to separate the tail objects  from each other. Use the scaling handles to achieve the desired effect.


Complete the Fish

  • Select all 3 tail objects and use the mouse to position them like below. There must be a slight overlap for the largest tail object and the main fish shape.


  • Select the largest tail object and the main fish shape, union these objects by selecting Path > Union (shortcut: Ctrl++). This makes them into a single large shape:




  • Bring the fish decoration all the way to the front (select the spiral shape and hit the Home-key).
  • Now draw an ellipse on top of the fish that indicates the eye: outline black and fill colour white. Add a smaller ellipse for the pupil.



Decide what outlines you want accentuated. I gave the outline of the fish (the largest object) a stroke weight which was 2x that of the smaller objects. Note: you can select all objects (select one, hold down shift to add others) and then set the outline width in one go by either:

  1. right click on the small number next to the stroke color in the bottom of the screen:
  1. opening of the Fill and Stroke dialog vsd_fill_stroke_dialog (Shortcut: Shift+Ctrl+F) and setting the stroke width on the Stroke Style tab

Your completed fish should look like this:


  • Select all shapes by dragging a selection window around them and group them. Menu Object > Group (Shortcut: Ctrl+G)


Finalizing the Illustration

Add some elements to the drawing.


  • Draw some small spheres in different shades of blue and grey as bubbles.
  • Dont forget to vary the outlines in colour too.



  • Use the Bezier tool vsd_bezier_tool, with shape set to "triangle in" for some seaweeds. This options applies the "pattern along a path" path effect automatically, but with a triangle. The path can be edited exactly as shown before. Some help on using the Bezier Tool is available here: How to draw a Bezier Path (opens in new window).
  • Use Path > Object to Path for the seaweed objects to apply the path effect permanently.
  • Set fill colour to green and outline to a very dark green.



Draw a big rectangle vsd_rectangle_tool as background and fill it with blue. Sent it all the way to the back with the End-key.


Clipping Path

To tidy up the bottom of the seaweed we apply a clipping mask. As the background rectangle is exactly the size we want, that object is very suitable as clipping path.

  • Make sure that the seaweed is a bit outside of the rectangle so that we can make a clear cut.
  • Duplicate the background rectangle. It should appear as top object.
  • Now select all objects that are part of the drawing - drag a selection window around all objects, zoom out if needed.
  • Select Object > Clip > Set from the menu.
  • Clipping uses the TOP object in a selection, and the clipping object disappears after clipping.
  • Note: the clipping parth is applied to ALL objects in selection. As only the seaweed was exceeding the drawing size, we could have just clipped that.
  • vsd_tut_fish_300

Click on the picture for a higher resolution image.

That's all folks. Feedback is appreciated.



+1 # Guest 2010-02-05 08:07
Very nice, thanks. But I dont know how to export whole image. Can you send some tutorial pls?
Reply | Reply with quote | Quote
-2 # syllie 2010-02-05 10:43
Hi Dalikos,

Export is very simple, tho it depends on what file format you want.

If you want a simple image of your design, just select all elements (rubberband) and select File > Export Bitmap. This will create a PNG file ALWAYS.

The dialog that opens allows you to save your Page, Drawing, Selection or a Custom area.

As you made the selection before opening the dialog, the button "Selection" is pressed, and all settings are already filled out.

If you want to export the picture exactly at the same size (pixels) you drawn it, just browse to a directory, give it a proper name. Don't forget to press the Export button.

More on this dialog can be read here:
Inkscape Guide: Export PNG

If you want to export to other file formats you need to use the "Save As.." option. More on that can be found here:
Inkscape Guide: Export files

I hope this helps,
Reply | Reply with quote | Quote
+1 # Guest 2010-04-09 05:10
my very first Inkscape-drawing,
and thanks to your tutorial,
it was as easy as a "thick" piece a cake...
I have another kind of fish-form, but it looks great,

thank you,
and greetings

Reply | Reply with quote | Quote
+1 # Guest 2010-08-07 06:48
Your tutorials are super, I have learned a LOT, thanks. I know horses, but am learning other things. Very informative.
Reply | Reply with quote | Quote
+1 # Chris Katheman 2011-09-30 23:04
Thanks for your great tutorials. I do have one problem though, with Inkscape that I can't seem to find an answer for anywhere on the internet and it has to do with nodes. Whenever I delete a node, I do not get a straight line between the remaining nodes. Instead I get a curved line. There are only two ways I can seem to get a straight line - either by breaking the path, and deleting both resulting nodes, or by selecting the corner nodes of the curved line and hitting "Make selected segments lines". It seems every tutorial on inkscape out there shows that deleting the node results in a straight line - is there a setting I am missing???
Reply | Reply with quote | Quote
+1 # syllie 2011-10-01 07:35
Hi Chris,

Thanks for your feedback. I think I should revisit some tutorials as your question is very valid. The Inkscape Node Tool was completely overhauled in the GSoC (Google Summer of Code). This code was implemented between version 0.47 (this tutorial) and version 0.48. Some further tweaking of the tool is still done - and it provides us now with a LOT more options, but also some features that are not that intuitive. That is the main reason why it still is being tweaked, most of it seems to come down to user preferences at this stage tho.

For us users it means that we have to learn to use all the new things and I will update this tut as it is intended for an Inkscape beginner and all the steps should produce the same results as the images shown :D

Long intro.. now the answer to your question:

Inkscape used to make the segment straight (or better said ignore the adjacent node handles) if a node was deleted. Some contributors thought this was wrong behaviour and that Inkscape should try to preserve the shape (so lowering number of nodes whilst the outline would remain in place).

Current (default) behaviour (Inkscape 0.48):

  • DEL-key to remove nodes while trying to preserve shape
  • CTRL + DEL-key to leave adjacent handles alone

So to get the triangle from the rectangle base: Hold down CTRL and then press the DEL key.

Also: preserving the shape upon deleting nodes is an Inkscape preference setting. You can switch it off by double clicking on the node tool. This will open the preferences dialog and then you can untick the option "Deleting nodes preserves shape" (last option).

More about the changes that were made (and yes perhaps I should write a tutorial as this list may be a bit outdated too):

I hope this helps.

Reply | Reply with quote | Quote
+1 # Jim 2013-03-13 01:32
:cry: Imagine me trying to create the modified box. Everytime I attempted to delete the node I used the delete found by right clicking as opposed to the Del-Key on the keyboard. But how was I to know that the two were not the same? BTW: I appreciate your tutorial.
Reply | Reply with quote | Quote
0 # vira 2012-10-27 15:41
Hello again,
i had posted a comment on another of your tutorials regarding clipping paths but i think it should have been placed here. Towards the end of this tutorial, where you are clipping away the seaweed, this is what i had a question about. when i clipped this part, i noticed the bounding box of the seaweed went beyond the blue box. is this normal? the seaweed is clipped fine but for some reason the bounding box is acting as if the seaweed was never clipped. This kind of throws me off because the bounding box is much bigger than the clipped seaweed. Is there something i am doing wrong? your help is appreciated.

Reply | Reply with quote | Quote
+1 # syllie 2012-11-14 19:27
Hi Vira,

Sorry to have kept you hanging in there for a while! I was certain that I had a look at posted comments just this weekend, but apparently not :(

The bounding box problem *sigh* I know about that one. You are not doing anything wrong there at all. It is a bug in Inkscape - have a look here:

This problem occurs in a few other situations too, and you can manually correct the bounding box if you like. I give a recipe for that in this tutorial:

Unfortunately I did not include anchors in the page, but if you browse down to about 2/3 of the page - just below the first image in the section "How to use this tile" - you'll find instructions how to change the dimensions of the bounding box.

A bit of a hassle, but as you can see it is already in the bug reporting system - now only 5 yrs to wait till it is fixed I guess :D

Reply | Reply with quote | Quote
+1 # Monica B 2014-02-14 15:30
Regarding the seaweed, I couldn't find how to make a shape "triangle in". where is that? Also could not select any objects behind the box covering everything for the clipping. Help
Reply | Reply with quote | Quote
+1 # Monica B 2014-02-14 15:32
Please explain how to make a shape use triangle in (as for the seaweed)
Reply | Reply with quote | Quote
+1 # oula 2014-12-13 01:18
Thank you so much for the incredible tutorial. It IS kind and generous of you to share information with us.
Reply | Reply with quote | Quote


We are very proud that the Spiro Swirls Tutorial for Inkscape has gained such popularity.

Today, 28 January 2012,  over 140,000 viewers have visited this page and our statistics show that it is still the most popular tutorial on this site. This tutorial is suitable for Inkscape version 0.47 and 0.48.

Thank you all for viewing and providing feedback. We do our best to make this site the best beginner resource site for Inkscape.