This is a list of ideas for final projects for MSc and UG students. The keywords are skills related to the projects. It will be ideal for the students to have some of the skills already and learn a few more skills during the projects. They are encouraged to choose projects based on their interests and skills, not the anticipated workload. The workload can be adjusted. The students are welcome to choose one of them or propose their ideas.


To contact me, write me an email at [at] or read the contact page to organize a meeting.

A Simulation Tool for MorpheesPlug

In MorpheesPlug, we demonstrated a parameter-based design of pneumatic shape-changing widgets. However, the software does not provide users with a simulation of how the widgets will change their shapes. This project will focus on providing a simulation tool to end-users, based on SoRoCAD and SOFA.

#software #3D-printing #technical-evaluation #design

Using Reinforced Learning to Model Grasping of Shape-Changing Dials

In ExpanDial, we conducted a study on how users would grasp static dials of different sizes. In this project, we want to conduct a follow-up study on how users would change their grasp regarding on the size change of a dial. The project aims to develop a hand skeleton to simulate human grasps and use reinforced learning to observe how the machine grasps dials of different sizes. This project may be co-supervised by Prof Andrew Howes at UoB.

#software #user-study

Building A Realistic Fluidic Simulation Environment for 3D Printed Objects

In our lab, we are designing interactive objects that are fully air-powered and do not require electronics, such as fluidics. While the idea is fascinating, it is difficult to simulate their performance with Autodesk CFD, because the CFD assumes that our models have clean surfaces, which is not true for 3D printed objects. This project aims to computationally generate 3D models that have similar properties of 3D printed objects, e.g., having layers on a surface, from input models.

#software #3D-printing #technical-evaluation #design

Building a Thread Printer

We want to build the next generation of 3D printers that can embed thread into 3D prints. There are initial versions of the hardware and software that partially work. The student is expected to continue working on them or propose new designs. The student is also expected to build a few applications by using the system they build.

#hardware #software #design

Evaluating VR as a User-Study Method for Shape-Changing Interfaces

In our paper at Frontiers, we showed that users have different speed preferences depending on whether they see a shape change in real life or on a screen. We wonder if such a difference will be the same between VR and real life.

#software #user-study

Design of Joint and Movable Parts for 3D printed Objects

This project is to build a 3D print version of SpringFit and Kerf-Canceling Mechanisms. Due to the limited accuracy of consumer-level 3D printers, it is almost impossible to build a multi-part 3D printed object that fits perfectly, e.g., crowdsourced 3D printed sculptures. The problem gets worse when there are moving parts such as a slider and dial. In this project, the student will identify unique challenges in 3D printed objects and propose designs to overcome the challenges.

#3D printing #design #technical-evaluation

Building a Large-Scale 3D Printer Using a Robotic Arm

The scale of 3D printed objects is limited to the size of the 3D printers used. This project aims to build a system to enable large-scale 3D printing using a robotic arm. The student is expected to build hardware at the end of a robot arm that can print thermoplastic based on open source. They are also expected to build software that can use g-code from an open-source slicer to control the hardware and robot arm. At the end of the project, they will build large-scale objects to demonstrate their project.

#hardware #software #design

Developing Software to Control Surface Strength of 3D Prints with Elastic Filament

The project aims to develop software that can computationally design an inner structure of an object that has the desired surface strength input by users. For example, a user can design a cube with different surface strengths on the top of the cube, to create a feeling that the cube adapts its shape to a sitter's body. The software will aid the user to design such objects by providing a user interface to adjust the strength of a selected position. At the end of the project, the student is expected to 3D print objects using their software.

#software #technical-evaluation #design

Learning how to manipulate objects from users and choose the right end-effector for a robot arm

Robot arms are increasingly used in domestic settings to support users who have limited motor capability. To extend the objects that the robot arms can manipulate, attachable end-effectors were designed. However, choosing the right end-effector and customising it can be challenging for lay users. Our previous project used ML to identify proper end-effectors by observing humans manipulating tools on videos. We want to take a step further to evaluate the machine and improve it. This project might be co-supervised by Dr Mohan Sridharan at UoB.

#software #AI #hardware

A simulation tool for chained voxel deformation

Harvard and designer Erik Aberg demonstrated deformable structures that are composed of hinges and voxels. The deformation of the voxels and/or folding the hinges cause other voxels or hinges to deform and allow the whole structures to change their shapes. I believe this kind of deformation can be used in many areas such as furniture and architecture. The goal of the project will be first to develop software to simulate such deformation and identify the minimum "vocabulary" of deformation. Then the vocabulary can be used to design larger-scale deformations. The project may involve fabricating some of the designs found in the software in the real world. This project might be co-supervised by Dr Jianbo Jiao at UoB.

#software #fabrication