Just to be clear: The element on the palette and the element on the canvas are two different things. On the palette it can be anything that you can achieve using CSS (e.g. image, text). On the canvas the element is a SVG that is rendered by bpmn-js. In order to be able to render your custom element you need to specify how this element is supposed to be rendered. In the example project there is a custom renderer that knows how to render the triangle so every time a triangle is to be rendered it will take care of it.