Rebuild Cat Trees | Interactive Structure Building System

Final Project for Coding for Design II Course

[DATE] Jan - May 2023

[INSTRUCTOR] Panagiotis Michalatos

[Project Type] Individual project

[Abstract] In this course, we are required to build an interactive generation system in the Unity environment. Inspired by my life experience, building an interactive system to generate customized cat trees became my concept. In the project, Millipede, an external library especially made for force analysis and topology optimization, is adapted in Unity to be in charge of providing real-time feedback for structure evaluations and Unity is responsible for user interface and visualization. After combining those two tools together, I successfully built a prototype system which allows users to build a more structurally rational and more customized cat tree according to their design and preference. But this is just a start, in the future, I hope this system can be developed more to bring more fun to more people and be applied in more fields, even in human-scale designs.

Target Problem & Concept


My two cats are both very energetic. It seems that staying at home cannot satisfy their daily demand for exercises, they always want to go outside to play…

So I tried to buy a cat tree for them to release their energy, but the structure is not stable. Especially when Paopao (the white fat one) jumps onto it, the whole structure shakes a lot, so Paopao feels scared and hardly plays with it. So an idea came out from my mind, how about I use what I learnt to rebuild a more stable and more customized cat tree for them?

Based on this idea, and also inspired by a game named Poly Bridge, I had an initial concept for this final project, here I drafted this general workflow.

Tools & The Basic Model


I learned Unity in the course and also Millipede in my independent study from my instructor Pan. Millipede is a Grasshopper plug-in for force analysis and topology optimization, through which I did lots of basic experiments in the Rhino environment. Here are two simplest examples.

Since this course requires us to build an interactive generative system in Unity environment as our final projects, I planned to use Millipede in Unity to build a system which can let users rebuild their customized cat trees. Thus, with the help from Pan, I used the Millipede library in the Unity environment. The basic framework is that Millipede is in charge of force calculation and Unity is responsible for UI feedback and also real time visualization of the structure. Based on this framework, I started to build the first basic model.

Step 1. Deflection Visualiztion

I started with the simplest model which only contains one load node and one anchor node, and they are connected with a beam element. Then Millipede will calculate the force analysis and also get the maximum deflection values for all the nodes. The next step is to use Unity to display the movement of all the nodes according to their maximum deflection values.

Step 2. Subdivision and Add A Beam

I want to let create some subdivision nodes on beams so that users can connect two nodes among them to create more beams to customize or stabilize the structure according to their preference

Step 3. Add A Beam Function

Each time when the user add a beam, the millipede will redo the force calculation again to update the result for each node, so that people can get some feedbacks to guide them to improve structure stability

The Final Model


User Interface

Initial Default Setting — Input some initial components, then the closest beams will be generated automatically

Feature 1. Add More Beams

Feature 2. Add More Base Components 

By choosing the base icon, we can create new base component on the ground for further development

Feature 3. Add More House Components    

By choosing the house icon, we can create new house components. And there will be a new beam generated automatically between the new house component and its nearest base component.

Feature 4. Replace or Add More Other Components

By selecting different icons, we can add different components to create more customized cat tree according to our own design.

All those features are achieved by the similar mechanism. In the algorithm, it has serval modes, each model has its own function block.

Evaluation Feature 1. Real-time Deflection Value Display

The last and current deflection values are displayed on the upper left corner. If the value gets red, it means the current value is larger than the last one, which might not be good. When it gets green, that means the deflection is getting smaller. So that the users can judge if each of their moves is good or bad.

Evaluation Feature 2. Beam Color

I first divided the beam's maximum stress value by its material yield stress to get a value. When this value is larger than 0.5, the beam will become red, which indicates this beam is approaching its limit and needs more structure support.

Evaluation Feature 3. Crazy Cat Mode

After finish all the operations, users can check the cat icon to start the Crazy Cat Mode. In this mode, a cat geometry will be placed randomly on platform and other components and also it will apply a temporary load to this node to test the structure strength of the whole cat tree. This mode tries to simulate the real situation and aims to help user to find more structure flaws. 

Afterwords

This project ended here as the course ended, but I really hope in the future I can use what I learned to build a more stable, more rational, and more customized cat tree for my cats. And also I think this project has its potential to help non-professional people to build their cat trees too, and also it can be extended to design human-scale installations and so on. Hopefully, in the future, it can be further developed to bring more fun.

Previous
Previous

Master's Thesis Updates

Next
Next

Phantom