## Mathematical niggles.

The numbers i, Π & e are special, with i being special in an awkward way.

Since it can be shown that i² equals both 1 and -1, a contradiction that is swept under the carpet for fear of a reprisel from the universe.

Recall that i is useful notation for shortening the written representation of imaginary numbers, it is defined as √-1.

Since i² = (√-1)² = √-1 × √-1 =  √(-1 ×-1) = 1

But,

i² is  (√-1)²  and because squaring a root ( i.e  (√A)² = A ) effectively cancels the operation out … we end up with -1.

A which point there’s usually a bit of shoulder shrugging and scuffling away.

## 100 Microns

100 microns ( A.K.A 100 micrometers ) is interesting, it is roughly the length of 100 bacterium sitting next to each other in a line. 100 microns is 0.1mm, think of one millimetre cut into 10 equal pieces. When I first saw this advertised figure as ‘print accuracy’ on a number of different printer sites, my first thought was, I can model using voxels, especially since I have my own voxel engine, who doesn’t nowadays? Now the workable print volume on my particular printer is 210x190x140 cubic millimetres, or 210x10x190x10x140x10 = 5,586,000,000 100 micron cubes , roughly 5.5 billion voxels. My engine can and does cope with this number, I had to optimise my vertex buffers a little and make my shaders take up the slack, but it was ‘doable’.

After a period of feeling rather pleased with myself, I noticed a pulley was slipping on my printer and I realised I needed a replacement. I’d caused this problem by being a bit rubbish at building, I’d filed them too aggressively, to make them easier for me to fit ( live and learn! ) Anyway, when you look into this world of pulleys ( they connect a  stepper motor to a timing belt ) , you soon realise ( or it gets pointed out by someone ) that a substitute ( different configuration – more or less teeth, different diameter etc ) pulley will change the timing of your machine and that an adjustment of the machine’s firmware will be required, i.e Printers need to know how to map actual steps ( rotations ) taken by a stepper motor to mm travelled in the real world. As it turns out, that advertised 100 microns is an upper bound, in reality the figure is much lower  … in my case it was something very tiny like 6 microns of travel per step ( 6 bacterium ) … Nice to know, but it rendered my voxel idea untenable, just think of how much memory would now be required to model this! Be lazy about it and round the 6 microns up to 10 microns, its implies 1000 times more voxels! The 5.5 billion voxels turns into 5.5 trillion! Ouch!

Incidentally, here’s a small trick, since we’re playing with length and volume. Assume your printer software tells you that you need x meters of plastic to print your model, now assume you want to print your model at half its original scale … how much plastic? Think of your unscaled model wrapped in a cube, now imagine that cube cut into 8 equal sizes cubes, each is 1/8th of the original volume and your scaled model fits perfectly into one of them, therefore, to print the smaller version should require roughly, only 1/8th the amount of plastic!

On a closing note, you are more bacteria than you are human cells! That is, we have 10 times more bacteria living on us and in us, than we have actual human cells, sobering thought.

## My Printer – And I’m not afraid to use it!

This is my printer, it’s a RepRapPro Mono Mendel! And, I built it from kit form. I’m very pleased with it so far. Currently its just hanging around until my software is at the stage where I can feed the printer my own manufactured GCode.

## Started work, actually a couple of week ago, on 3D printing software.

It helps having your own custom 3D software ( c++/Opengl 3.3 ) you can hop straight to examining existing GCode and then on to writing a custom a slicing algorithm, it’s fast too … very fast, because the code base was/is intended for a games engine.

I’m currently only targeting windows, but the thing is written is c++/stl and most of the code is custom and nothing to do with windows at all, so later, it should be possible to port.

## Boot Strapping

In the world of hardware, it’s only when you try and build something that you realise that ‘this’ will not connect to ‘that’ and that the ‘interface’ ( my internal nomenclature I’m using to describe it – ( subject to change ) ) introduces unwelcome weight/friction/stress/tension/geometry … constraints and renders an otherwise good design, infeasible. The answer really does seem to be a 3D printer, they really do solve the ‘interfacing this to that’ problem, albeit by introducing two constraints, restrictions on form and print material. Incidentally, I was reading that research is being undertaken in printing with Graphene … which is quite possibly worthy of the phrase ‘amazing’.

You don’t need a cake to make a cake, but it’s better to have a programming language to make another programming language or a robot to make another robot or a 3d printer to make another 3d printer or cell to make a cell … in this class of things reside all things that are supremely special.

You can add nuclear fission to that list and get to the idea of a chain reaction and uncover nature’s wonder weapon … exponential growth!

Posted in Robots | 1 Comment

## Tit for Tat

I’ve been fascinated by the Prisoner’s Dilemma ever since I first encountered it. It goes something like this.

You have two prisoners which are under interrogation. They have only two choices.

Choice A:  Stay silent.
Choice B:  Betray the other prisoner.

Call the two prisoners Bob and Wendy.

Now, there’s 4 permutations.
Wendy plays A and Bob plays A. They both serve a month in prison.
Wendy plays A and Bob plays B. Bob goes free Wendy does 1 year.
Wendy plays B and Bob plays A. Wendy goes free Bob does 1 year.
Wendy plays B and Bob plays B. In which case both get 3 months.

The question is, if Bob and Wendy replay the game over and over is there a way of playing that minimises the time spend in prison?

Well someone did ask this question and also asked for people to write programs to play the role of a prisoner. There were evil programs that would always choose B, nice programs that always choose A and other more sophisticated ones that did statistical analysis of the other prisoners responses and of course a whole lot of other strategies in between.

After running these programs a winner emerged called Tit for Tat. Its strategy was simple; start with A then depending on how the other prisoner responds, start the next round with that.

You don’t want a fluke, so everyone was told about Tit for Tat’s strategy and off they all went to revise their programs and the drama was played out all over again and the winner was … Tit for Tat.

## Tymax’s minimalistic refurbishment.

I’m now replacing tymax’s old site with this blog the previous webpages were ancient and I never updated them – they had almost become a de facto standard in their own right. I don’t enjoy web development simply because of the languages I’m forced to use Javascript/html/php … I program exclusively in c++ because I need execution speed, so using premade wordpress blogging software is convenient in this respect.

In this regard the current crop of web based languages are not really suitable for large scale development, especially the type of programs I write … a standardised Virtual Machine would be nice … then I could port my c++ code.

I can’t see this happening anytime soon, lol.

## Hover Balls

Pack a sphere with tetrahedrons ( edges only ) formed from nanotubes to stop the volume imploding … wrap the sphere with nanotube surface ( I think paper exists now ). Create a partial vacuum inside the volume.

Would it float?