ETH DFAB 2018 Mini-project for Frame Möbel by Nicolas & Yuta
Exercice to design a metal-fdm printed join for a space frame, aimed at a table.
The exercice was taken as an oportunity to explore a possible way of sharing the work of designing, between a machine (computer system) and a human.
Given the short timeframe of this exploration, it was choosen from the start to split the design in two parts.
The main idea is to have as little human input as possible for the global design of the table (general shape and derived space-frame).
The join in contrast has a strong emphasize on the human intent (no form-finding strategies).
It is of note that this strict separation is not necessarly the best option, but merely a starting point in this research on human-machine intergration for design tasks, that some others may continue.
- train_auto_encoder
Training of an auto encoder based on PointNet. - python
Python program to tweak point clouds for table manipulation. - pointcloud2mesh
C++ program to create a mesh from a point cloud. - grasshopper
Grasshopper scripts as a client to call the programs above. - processing_app
Processing applications as a client. - cloudtable_docker
Docker environments hosting this project.
The easiest way to set up this environment is to use Docker.
- Clone this repository
- Build a docker image (takes around 5 mins)
cd cloud_table/cloudtable_docker && docker build ./ -t cloud_table
- Run and log into a docker container (mount all files in this repository with the container)
docker run -it --name cloud_table -v {ABSOLUTE_PATH_OF_THIS_REPOSITORY}:/cloud_table -p 9997-9999:9997-9999 cloud_table
- Start the docker container
docker start -i cloud_table
In the docker container, run python3 /cloud_table/python/socket_app.py
then open tweak_latent_vector. Note that you need to restart its socket connection every time before running the Proceeing app.
semantic_morphing / web app - DEMO
In the docker container, run python3 /cloud_table/python/webapp.py
then browse http://127.0.0.1:9997/semantic_morphing
with some modern browser
weather_table / web app - DEMO
In the docker container, run python3 /cloud_table/python/webapp.py
then browse http://127.0.0.1:9997/weather_table
with some modern browser
- Point clouds
1 point-cloud with 2048 points per model from ShapeNet.
- Select a base table
- Tweak its latent vector
- create a mesh from the point cloud
- Apply a joint system between connected edges
- Docker
- Rhinoceros 6
- Processing 3
- Python 3.6.5
- PyTorch 0.4.1
- CUDA 9.0 (for training an auto encoder)
- C++14 (GNU++14)
- libc++
- CGAL 4.13
- deep cloud The Application of a Data-driven, Generative Model in Design
- PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
- Three-Dimensional Alpha Shapes
- Algorithm for generating a triangular mesh from a cloud of points
- Using CGAL and Xcode
- 3D Alpha Shapes
- Everything You Always Wanted to Know About Alpha Shapes But Were Afraid to Ask
- VAE with PyTorch
- Intuitively Understanding Variational Autoencoders
- What The Heck Are VAE-GANs?
- robust algorithm for surface reconstruction from 3D point cloud?
- Eigenchairs