Pretty Animations

These past few days I’ve been working on the animation generator. Here’s a result:

I wrote a generator in C (which will later be the code used on the main board) which has a generate_frame function which will generate the next frame of a procedural animation. The generate_frame function can be called an arbitrary amount of times.

The code can export the frame to a file, which is then read by my animation simulator script I wrote for blender.

The simulator takes a few secondes to read the frames (5 secondes for a 500 frames animation for instance), and can then display the animation in real time (same as in the gif)

The simulator can also render high quality realistic animations as the one you can see in our project presentation , but even a small animation will take a day of rendering

Here’s all the concepts / techniques I have been working on right now (most of them are already implemented) which the generator uses:

Virtual Petals

The virtual petals are the petals you appear to be seeing go down (age) on our phyllo animations.… Read more

Flower power

Blooming Phyllo 

This morning, Vlaya, Xavier and I carefully made a paper template for where to bore holes in the PCV disc to attach the Phyllo shell. Vlaya had previously finished placing threaded inserts on a 3D-printed sculpture. We then went to the school mechanic, Mr Croullebois, to bore the holes and attach the sculpture. 

The threaded inserts we used have a screw thread diameter of 3.5, which it turns out is not standard in France. Thankfully, the school go-to guy for electronics, Karim Ben-Kalaia, who by luck was visiting Mr Croullebois at that time, offered to take a look in his own workshop and promptly returned with a handful of suitable screws 🙂 

Without further ado, here’s what it look like : 

Just a quick note : the motor currently in the fixed base has been damaged during our tests and makes a pretty annoying creaking noise while turning.… Read more

Improving the 3D PCB supports

I talked in this post about the 3D supports I’m making in order to easily fit the 62 petal PCBs and 12 processor PCBs in the Phyllo. Since then, I’ve made quite a few changes and progress on the 3D design:

Here you can see both the phyllo, the support for the processor PCBs (blue) and for the petal PCBs (red), and the PCBs (green)

The cylindric pieces are here in order to have thickness around the holes in which I will put the threaded inserts.

I tried to print the processor PCB support, but it failed because of wrong settings, here is the result of the second print:

It’s not perfect yet, there is one spot where the structure got shifted, but it’s still a very promising result.… Read more

Going all out on the 3D

As mentionned here, we will use 62 LED mounted small “Petal-PCBs” and 12 “processor PCBs” to drive groups of 4 to 7 Petal PCBs. Now you might be asking “how on earth will you assemble all these PCBs and solder all the wires involved on a structure rotating at 30 rotations per second ?”, and that would be a fair question…

Along our reflexion we had multiple ideas:

  • Add structure to our 3D printed shell on which to stick the PCB: we had to drop that idea after all the problems we encountered printing our shell
  • Make the axis go all the way up and have arms stretching from the axis to hold the PCBs: this would’ve made the structure quite heavy, and we were not sure how to design this
  • Make the PCB hold by using rigide wires to link them: This was initially proposed only for the PCB-petals, but even for them we were not convinced it would hold
  • Print another solid shell with structure to hold all the PCBs: this was problematic since it might delay or block the IR emitted by the IR LEDs we wanted to place inside the shell

Finally, we decided on the latter option, as we will probably have the IR LEDs emit in a gap between the PVC plate and the large aluminum top platform.… Read more

Let me hear your vox

For nearly two weeks now I’ve been working on a voxelizer, to convert a 3D model into an image that can be displayed by LitSpin. The goal of voxelization is simple: we need to display an image on a grid of leds, which means that the input image needs to be divided into voxels (3D pixels), each voxel representing a led.

Our grid looks like this:

The number of voxels corresponds to our desired resolution (20 circles, 128 angles and 32 leds from top to bottom).

The voxelization algorithm consists in tracing rays across the model to detect intersections with the triangles of the model.… Read more

Taking full control on our 3D model

We discussed in our post Generating 3D Models  the script I wrote to generate the 3D model of our phyllotactic sculpture. In this script, I start by generating a polyhedron made up of quadrilaterals arranged in a phyllotactic pattern:

Then, my script takes as input a 3D model of a petal and copies it on each quadrilateral:

The 3D model of the petal I use is taken from John Edmark’s model

One problem with this method is each quadrilateral is different, which means I had to slightly deform each petal to fir the quadrilateral’s shape. Figuring the exact 3D transformation to accomplish this seemed a little too time consuming so I used lattices in blender, which are a way to deform objects according to a 3D grid.… Read more

About LEDs

First ideas

Our original idea was to place LEDs on the inner sphere of the sculpture, either with flex PCB, or by drilling the sphere, placing the LED in the holes and connecting them with wires to a rotating PCB contained into the sphere. To facilitate the positioning of the LEDs, we could have modified the design so that we can pin the petals one by one on the inner sphere rather than print everything in one block.

But these designs are not easily achievable. First, Alexis does not know how to design flex PCBs. Second, to have a satisfactory visual impression, we would like to have at least 100 petals.… Read more

Generating 3D Models

TL;DR

  • We need to generate 3D models of phyllotactic patterns.
  • We give an explanation of how to generate phyllotactic patterns on a sphere.
  • We present an issue we encountered, and the solution we found.

Why 3D Models ?

When we first started thinking about the project, we quickly realized we would need to generate 3D models of the sculpture ourselves.

First because we need to have full control on the model, to try various configurations for the future 3D printed sculpture. And second because it will greatly help us visualize all the kinds of animations we are imagining.

Accordingly, Vlaya wrote a script using the blender python API to generate a 3D model, following John Edmark’s online explanation.Read more