Vespa front wheel

When we look at a vehicle being a car, a motor bike, they have wheels. Typically these vehicles have a suspension but even if they don’t have visually they will have some sort of elastic support and dampening effects even if coming from the structure.

Vespa_50s_scooter_front_wheel close up
Vespa 50s scooter front wheel close up

My vespa suspension performance is very bad, I really need to fix it. If I ride the bike with a second occupant the suspension gets fully loaded.

Going back to my school memories what concept simplifications would represent a wheel system?


The red candle cup.

Day and night is present in our lives since the moment of our birth. Place a lit candle in this cup and a world of reflection opens, giving a fantastic ambience. Light is all about sensation, math, physics and some mysticism at the mixture. Light has been studied by many geniuses from Albert Einstein to Richard Feynman giving birth to fantastic ideias about the universe around us, but a side from the speed of light, it’s diffraction the common human knows little about it.

Many activities explore light, modelled it and play with it. Photography explores light to an outstanding level. Texture, highlights, color, black and white, grey toned images are just a few examples.

Unfortunately I don’t have much answers regarding light simulation and what can be done with it. Interestingly games play with light from rendering shadows, light glare, and more effects. Photo editing software also create lens flare effects, maybe these can be considered to be some sort of light modelling.

Either by exploring light on a nice summer day or by taking that photo at sun down, light remains the source of inspirations that holds still many secrets to tell.

Red and silver Squared Glued Glass Cup

Sun bench Reloaded

Independent of the structures boundary conditions, shape… stresses tend to be smooth when the structure is subjected to a specific load, considering also there are no stress concentration zones. The sun bench structure works no differently. An interesting point is that the angled leg is weaker compared to the vertical part of the leg.

This work was done in FreeCAD from the geometry design to the FEM setup. Material data used was a simple isotropic ABS from FreeCAD database. The load considered was for a 100Kg load. Supports used were fixation lines at the profile bottom borders.

Sunbench stresses
Sun bench stresses
Sun bench
Sun bench

Fibonacci Spiral in Python

I always like to play around with my models and see what happens next. Don’t you? Problem is that most of the time we don’t know how to do it and with what resources… Let me show you how to model a Fibonacci spiral easy.

First we will use Python. Don’t worry. Install Python or just install Anaconda and open Spider.

Once in spider paste the following code to the editor and hit play.

The result should be something like this:

Fibonacci Python Generated Spiral
Generating a Fibonacci spiral.

There is a nice page that explains how the python script works and gives a deeper insight into the Fibonacci series:

Week 1: Fibonacci Sequence and the Golden Ratio

# ----------------
# Code written by Peter Derlien, University of Sheffield, March 2013
# Draws spiralling patterns of circles using the Golden Angle.
# ----------------

# Import from the numpy and matplotlib packages.
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
from matplotlib.collections import PatchCollection
import matplotlib.patches as mpatches

ox=0.5; oy=0.4 # centre of plot

ndiscs=input('No. of discs (e.g. 300)? ')
ncols=input('no. of colours (1 to 34)? ')
offset=input('offset (in radians) from golden angle? ')
offset = float(offset)
tau=(1+5**0.5)/2.0 # golden ratio approx = 1.618033989
#(2-tau)*2*np.pi is golden angle = c. 2.39996323 radians, or c. 137.5 degrees
inc = (2-tau)*2*np.pi + offset
k=0.1 # scale factor
drad=k*(1+5**0.5)/4.0 # radius of each disc
minv=maxv=0 # minv and maxv will be used later to display inputs chosen

# now collect in list 'patches' the locations of all the discs
patches = []
for j in range(1,ndiscs+1):
r = k*j**0.5
theta += inc
x = ox + r*np.cos(theta)
y = oy + r*np.sin(theta)
if y > maxv:
elif y < minv:
disc = mpatches.Circle((x,y),drad)

# start building the plot
fig = plt.figure()
ax = plt.axes([0,0,1,1])

# create text to show which inputs the user has chosen
font = "sans-serif"
nd = 'ndiscs: '+ str(ndiscs)
plt.text(minv, maxv, nd, ha="center",family=font, size=14)
setting = 'angle offset: '+ str(offset)
plt.text(minv, minv, setting, ha="center",family=font, size=14)
nc = 'ncols: '+ str(ncols)
plt.text(maxv, maxv, nc, ha="left",family=font, size=14)

# build colour cycle, using a number between 0 and 100 for each colour
for j in range(ndiscs):

# bring together the information for locations and colours of discs
collection = PatchCollection(patches,, alpha=1.0)

ax.set_xticks([]); ax.set_yticks([]) # suppress display of axes
plt.axis('equal') # display the plot we have built 

Natures numbers – Fibonacci

It is really beautiful when we can see math in the world around us! How can a flower find the most optimised structure to balance growth, sunlight and moisture in each seasonal energy burst? I guess millions and millions of year and we get the golden ratio in the fibonacci series.

Fibonacci Spiralled Flower
A beautiful image portraying Fibonacci Structures


Mathematical Spirals

Today we use super computers and special algorithms for complex problems, however in the past mathematicians could model problems and solve them with very little resources. It is always good to get to the basics and see art in the form of math.

Leonardo of Pisa nicknamed “Fibonacci”, brought state of the art Arab mathematics to medieval Europe. One of his contribution was his book Liber Abacci where it described a series that we commonly see in nature. It’s all about spirals but they follow a rule…

The Fibonacci series can be seen as a numeric sequence starting with two ones where each subsequent number is equal to the sum of the preceding two numbers: 1, 1, 2, 3, 5, 8, 13, and so on.


Although this number series was known in India previously, Leonardo helped spread this knowledge worldwide.

The most interesting thing is that he stumbled upon it trying to solve a rabbit problem! I think the book proposed the following:

‘A man put a pair of rabbits in a place surrounded on all sides by a wall. How many pairs of rabbits are produced from that pair in a year, if it is supposed that every month each pair produces a new pair, which from the second month onwards becomes productive?’



Playing a bit with the results in the Brompton bike handlebar case

On my previous post I got to discover that the new design for the 2017 Brompton bike model is much more robust. Didn’t get to understand if it was designed on purpose or was a technical difficulty. My hunch was that they enjoyed the design and it made construction simple. However with experience they concluded that it was a problematic design and went for a new design. They could have just reduced the central bar length but instead almost removed it to a more challenging design at least for manufacturing.

Bent and unbent version
Bent and unbent version

FreeCAD produces nice images and this one is an undeformed vs deformed shape. Here I think it is visible that near the stem is where most of the stresses will be generated. So if you have a handlebar from a bellow 2017 model take special care to not pressure in an exaggerated manner the handlebar down.

Special thanks: I would like to thank the FreeCAD forum team and in particular Bernd for providing troubleshooting for FreeCAD and showing how to do the deformed and undeformed image.

HandleBar model discoveries

Finally I get to see if FreeCAD is of any use.

Previously I described the problem which was to discover why Brompton bikes updated the handlebar design. I got curious to know if the top elbow would or not bend first and if the length between the two would make a great distance. All of this resorting to many assumptions and simplifications. (I am doing this for fun)

First off all I have a Brompton! I am one happy user.

Brompton handlebar
Brompton handlebar

Now The issue was the design differences, which you can checkout the new here:

2017 Brompton handlebar
2017 Brompton handlebar

And the old design here:

2015 Brompton handlebar
2015 Brompton handlebar

Our hands are positioned on the blue top zone and the handlebar is fixed on the blue bottom element.

I considered lower force justo to get an ideia, many direction could have been studied.

HandleBar model constraints
HandleBar model constraints

Then I selected my simulation package which in this case I opted for FreeCAD. And started meshing wright a way with Gmsh.

Handlebar mesh
Handlebar mesh

And now finally I got to the results part.

Handlebar bending result
Handlebar bending result for the version bellow 2017 model

From the image it seems that the lower elbow until the fixed support will take much of the stress. The bar height being bigger will increase torque which will increase the reaction force at the supports. Reducing the central bar between the lower and top elbow will increase handlebar strength. The only thing I can see that made them go for the previous geometry for the bellow 2017 model is design or manufacturing technical difficulties. Maybe it is harder to bend the single shaft with such low central support at each handlebar side.

FreeCAD works as expected… Good work open source comunity!

HandleBar model constraints: The Model & assumptions

I started showing two handlebar model versions (before and after 2017 model). Introduced my constraints into the handlebar, fixation and load location. But now what? The objective!!!! I wanted to know where was the weak spot of the handlebar. It has two elbows at each side. Where will the cracks start preferebly? I could just say 50% chance on any of the elbows but that would be to easy.

So why not Build the simulation model???? First check my previous posts:

Handlebar model constraints

Handlebar model case II

Handlebar mesh
Handlebar mesh

Forgetting about model accuracy I am just looking for the stress field.

My assumptions:

  • Isotropic material
  • No transient effects

Making the mesh was straight forward with FreeCAD. The two meshers in FreeCAD behaved differently in Gmsh I could not use the default values. I had to use max 1.8mm and min 0.8mm mesh size. On NetGen I used the default without any issues.

I am not saying that it was easy to setup things… I got many installation issue however in the end everything worked. Fortunatelly FreeCAD has a great forum that can help when in need.

FreeCAD forum post

On a next post I will look at the results…