Trusscillator: a System for Fabricating Human-Scale Human-Powered Oscillating Devices
Robert Kovacs, Lukas Rambold, Lukas Fritzsche, Dominik Meier, Jotaro Shigeyama, Shohei Katakura, Ran Zhang, Patrick Baudisch
In Proceedings of the 34th Annual ACM Symposium on User Interface Software and Technology, Virtual Event, USA, October 2021
paper: PDF
ACM Digital Library
Trusscillator is an end-to-end system that allows non-engineers to create human-scale human-powered devices that perform oscillatory movements, such as playground equipment, workout devices, and interactive kinetic installations. While recent research has been focusing on generating mechanisms that produce specific movement-path, without considering the required energy for the motion (kinematic approach), Trusscillator supports users in designing mechanisms that recycle energy in the system in the form of oscillating mechanisms (dynamic approach), specifically with the help of coil-springs. The presented system features a novel set of tools tailored for designing the dynamic experienceof the motion. These tools allow designers to focus on user experience-specific aspects, such as motion range, tempo, and effort while abstracting away the underlying technicalities of eigenfrequencies, spring constants, and energy. Since the forces involved in the resulting devices can be high, Trusscillator helps users to fabricate from steel by picking out appropriate steal springs, generating part lists, and producing stencils and welding jigs that help weld with precision. To validate our system, we designed, built, and tested a series of unique playground equipment featuring 2-4 degrees of movement.
Trusscillator is a software system that enables users to create human-scale, human-poweredmachines, such as the playground equipment. Trusscillator achieves this by allowing users to add springs to their designs. Springs have the ability to transform movement (kinetic energy) into compression (potential energy) and transform that back into movement. Consequently, springs help to keep these devices in motion with little effort and thus allow even larger machines to be human-powered. These systems concerned with energy and motion are typically referred to as dynamic systems.
To allow designers to create human-powered movement, Trusscillator offers a novel set of tools, specifically designed for dynamic experiences. These tools allow designers to focus on user experience-specific aspects, such as motion range, tempo, and effortwhile abstracting away the underlying technicalities of eigenfrequencies, spring constants, masses, and energy use. Since the forces involved in the resulting devices can be high, devices designed using Trusscillator are made from steel. Trusscillator helps users to fabricate these devices not only by picking out appropriate springs but also by producing stencils and placing temporary connectors that help welding the resulting large-scale structures.
Design space
We have used Trusscillator to design a wide range of devices. The samples are shown below, including swings featuring 1D (b, e, j, m), and 2D motion (a, c, f, g), as well as kinetic installations (h, k) and balancing workout equipment (i).
Fabrication
Trusscillator generates drilling stencils: (a) To minimizes the resulting gap between rod and sphere, thus maximizing the quality of the welded connections, Trusscillator helps users arrange rods and spheres so that rods hit spheres at a right angle. (b) To show users where on sphere connect with rods, Trusscillator generates custom stencils that mark the so-called incidence points. Stencils form star-like shapes and Trusscillator exports them in SVG format. Users print and cut stencils manually using scissors or they send the SVG to a knife cutter or laser cutter. (c) Users attach a stencil to a sphere using a magnet and wrap the arms around the sphere such that each arm marks one incidence point. The stencils also help the assembly by displaying node IDs and edge IDs. Users transfer this information onto the spheres by marking the incidence points through small holes in the stencil. (d) Now users drill 6mm holes at the marked incidence points where the temporary connectors hook into.
Temporary connectors
Holding and welding the pieces in place is a challenging task, even for experienced welders. To overcome this difficulty, Trusscillator offers a system that helps pre-assemble the structure, allowing users to position all rods at the right places and at right angles with respect to the spheres before welding starts. For this purpose, we designed a thin metal connector piece that on one side hooks into the holes of the node-sphere, while its other side forms a cantilever spring that fits tightly into the metal tubes and resists slipping out, as shown in the figure below. For a secure connection, two of these metal pieces are inserted in every hole with opposite hook orientation, so none of them will be able to escape the hole when the tube holds them together (b-c). This way they are holding the structure temporarily but firmly together for welding (d). These connector pieces can be produced in a local metalworking shop using CNC machinery. They are considered as consumable material that stays locked inside the structure after welding.
Translating amplitude, frequency, and effort into mass, spring, damper configuration
The main objective behind Trusscillator is to allow users not only to design and build large-scale human-powered structures but also to help them to get the physical properties “right”. The key idea here is to shield users from the underlying physics perspective (where devices are considered mass-spring-damper systems, see below) and to instead, let the users interact in user experience-related dimensions they are familiar with, i.e., range of motion (aka amplitude), frequency of the oscillation (aka tempo), and the time/energy required to swing up the device (aka effort), as illustrated in the figure below. For these input dimensions, Trusscillator determines spring constant and mass configuration to satisfy the user’s design intent. The relationship between the mechanical properties and the experience attributes is illustrated on the right side.
Trusscillator acquires the attributes of the oscillation by running a simulation sequence. During the simulation, the human-mimicking force starts to actuate the device and the amplitude is increasing as the energy is being accumulated in the system, as shown in Figure 15a. Consequently, the velocity of the movement also keeps increasing. However, proportionally to the velocity, viscous damping starts to increase ( ), and this force is counteracting the movement. With the velocity increase, the damping action is dissipating more and more energy into heat; up until the point when the amplitude and velocity are so high that all the input energy of the user is being consumed by damping. The orange line in Figure 15b indicates this time point when the oscillating system has reached the energy equilibrium and the amplitude remains stable.
To exemplify this process, we take the simple bobbing saddle model from Figure 14a, fit with a catalog spring with the stiffness of k = 3376N/m, and damping d = 50 Ns/m, as shown in Figure 15a, and run the simulation for a 12-year-old user (40kg, 75W). Trusscillator then obtains the following information:
Amplitude: Trusscillator takes the largest amplitude from the simulated movement coordinates by finding out the maximum distance between any two points in the time-series for the node of interest. For the example above, it shows that the tip of the child’s head will move about a 1m arc.
Effort: The time required to reach the energy equilibrium (ramp-up time) is what Trusscillator takes to estimate the effort required to swing up the device. Specifically, we take the amplitude measurements and compare at which point in time the occurrence of the largest amplitude drops below a 15% margin from the largest amplitude. The diagram in Figure 15c shows the velocity increase has stabilized after around 3.5s. Trusscillator interprets this effort as easy (up until 5s ramp-up time). From 5s to 10s it is considered just-right and above 10s is laborious, based on our observation of common swinging behavior. This information is then displayed in the effort widget to the user.
Tempo/Frequency: Trusscillator analyzes this 3D velocity data from Figure 15c using Fast Fourier Transform (Figure 15d) and searches for the global maximum. In this example, the structure oscillates with the dominant frequency of 1Hz. This result is then classified as comfortable (0.5-1.5 Hz) based on input from [21]. Higher frequencies are classified as shaky, lower is slow. This information is displayed to the user in the tempo widget.
Interactive editor frontend
Trusscillator builds on the editor components of TrussFab and TrussFormer, which provide the core functionality to create, save, load, and export static and kinematic structures. Both the editors as well as, Trusscillator’s frontend as well, are implemented as a plugin for Sketchup Version 17using the Ruby programming language.
Trusscillator’s simulator and optimizer package runs as a stand-alone server and communicates via HTTP with the UI and the Sketchup Plugin. Sketchup transfers the model, encoded as a JSON string, to the simulation server. It contains the graph representation of the structure, including the lengths, spring and user positions, and the state of the requested behavior. For running a simulation, the server derives a system of equation from this structure by mapping the input graph structure onto simulation components, such that the entire model can be expressed in the following form: , where u is the state vector of the system, pis the parameter vector, and t the time, as follows from [35]. This representation treats all the nodes essentially as ball-joint connections with point masses. For any arbitrary structure, the state of the system is uniquely defined by the positions and velocities of individual nodes.
With NetworkDynamics.jl, we provide a graph structure and specify the respective functions for every component separately, serving as a lightweight layer that separates concerns. Here, we specify four components: nodes, spring-dampers, rigid edges, and fixtures. These components are mapped one-to-one from the model created in the editor.
Optimization
To change the motion experience, Trusscillator has access to modify the two mechanical properties, namely mass (by adding weights to the structure) and stiffness (by choosing a spring from a catalog). We assume damping to be fixed as an inherent property of the material of the coil springs. This results in a challenging limitation for tuning the experience, where not all the criteria can be satisfied at all times. For this reason, Trusscillator utilizes a sampling-based optimization approach.
The figure below illustrates Trusscillator’s optimization procedure, which is loosely inspired by the simulated annealing strategy. First, the algorithm searches for a viable baseline configuration. It assumes one global spring constant for all springs in the structure. It covers the range between 3kN/m and 20kN/m spring in intervals determined by the preset resolution (e.g., 10). After each simulation, we evaluate the simulation runs with the target metrics that we want to optimize and assign a distance to every sample using the distance function. We store the best (i.e., closest result) and proceed with optimizing the springs with a higher resolution one by one. We proceed analogously to the global sampling, only this time we don't consider the full spectrum of springs but only a window around the currently best assignment (e.g., ± 2kN/m), and every sample is being simulated with a range of additional masses. To avoid combinatorial explosion, we only place one mass in every local search step and place it at the highest point on one adjacent rigid group (heuristically assuming that this has the largest effect on the result). After every sampling round, we store the best parameter assignment and resume it for the next spring. After all the springs have been processed, we return the best matching parameter assignment of the last round.
This algorithm returns in O(n) sampling steps, where n is the number of springs, assuming that sufficient computing resources to run all simulations for a given sample in parallel are available. Parallelizing the simulations within one sampling round and reducing the dependencies of consecutive steps is key for reducing response times and enabling interactivity.
Conclusion
We presented Trusscillator, an end-to-end system that enables novice users to design and build human-scale human-powered machines. As we learned in our expert interviews, such devices are usually subject to long design and prototyping cycles. Trusscillator speeds up this process by encapsulating large parts of the required domain knowledge from designing structurally stable mechanisms, through tuning and verifying their dynamic behavior, to building processes and tools.
Zooming out, we think of Trusscillator as a tool that pushes research on large-scale personal fabrication in two ways. First, it goes the next logistical step from systems supporting static construction to kinematic construction to now dynamic construction. Second, it provides a computer-assisted system for the personal fabrication of welded steel structures, thereby laying the groundwork for scaling this line of research to bigger structures and larger forces.
As future work, we plan to introduce dampers into large-scale personal fabrication, allowing users to design large-scale mass-spring-damper systems.
Acknowledgements
We thank Philippa, Oli, and Tisza for playtesting our demo objects, Daniela Vogel for the design of the UI elements, and Hany Elhassany, Paul Methfessel, and Martin Taraz for their help with the welding works.
Robert Kovacs, Lukas Rambold, Lukas Fritzsche, Dominik Meier, Jotaro Shigeyama, Shohei Katakura, Ran Zhang, Patrick Baudisch
In Proceedings of the 34th Annual ACM Symposium on User Interface Software and Technology, Virtual Event, USA, October 2021
paper: PDF
ACM Digital Library
Trusscillator is an end-to-end system that allows non-engineers to create human-scale human-powered devices that perform oscillatory movements, such as playground equipment, workout devices, and interactive kinetic installations. While recent research has been focusing on generating mechanisms that produce specific movement-path, without considering the required energy for the motion (kinematic approach), Trusscillator supports users in designing mechanisms that recycle energy in the system in the form of oscillating mechanisms (dynamic approach), specifically with the help of coil-springs. The presented system features a novel set of tools tailored for designing the dynamic experienceof the motion. These tools allow designers to focus on user experience-specific aspects, such as motion range, tempo, and effort while abstracting away the underlying technicalities of eigenfrequencies, spring constants, and energy. Since the forces involved in the resulting devices can be high, Trusscillator helps users to fabricate from steel by picking out appropriate steal springs, generating part lists, and producing stencils and welding jigs that help weld with precision. To validate our system, we designed, built, and tested a series of unique playground equipment featuring 2-4 degrees of movement.
Trusscillator is a software system that enables users to create human-scale, human-poweredmachines, such as the playground equipment. Trusscillator achieves this by allowing users to add springs to their designs. Springs have the ability to transform movement (kinetic energy) into compression (potential energy) and transform that back into movement. Consequently, springs help to keep these devices in motion with little effort and thus allow even larger machines to be human-powered. These systems concerned with energy and motion are typically referred to as dynamic systems.
To allow designers to create human-powered movement, Trusscillator offers a novel set of tools, specifically designed for dynamic experiences. These tools allow designers to focus on user experience-specific aspects, such as motion range, tempo, and effortwhile abstracting away the underlying technicalities of eigenfrequencies, spring constants, masses, and energy use. Since the forces involved in the resulting devices can be high, devices designed using Trusscillator are made from steel. Trusscillator helps users to fabricate these devices not only by picking out appropriate springs but also by producing stencils and placing temporary connectors that help welding the resulting large-scale structures.
Design space
We have used Trusscillator to design a wide range of devices. The samples are shown below, including swings featuring 1D (b, e, j, m), and 2D motion (a, c, f, g), as well as kinetic installations (h, k) and balancing workout equipment (i).
Fabrication
Trusscillator generates drilling stencils: (a) To minimizes the resulting gap between rod and sphere, thus maximizing the quality of the welded connections, Trusscillator helps users arrange rods and spheres so that rods hit spheres at a right angle. (b) To show users where on sphere connect with rods, Trusscillator generates custom stencils that mark the so-called incidence points. Stencils form star-like shapes and Trusscillator exports them in SVG format. Users print and cut stencils manually using scissors or they send the SVG to a knife cutter or laser cutter. (c) Users attach a stencil to a sphere using a magnet and wrap the arms around the sphere such that each arm marks one incidence point. The stencils also help the assembly by displaying node IDs and edge IDs. Users transfer this information onto the spheres by marking the incidence points through small holes in the stencil. (d) Now users drill 6mm holes at the marked incidence points where the temporary connectors hook into.
Temporary connectors
Holding and welding the pieces in place is a challenging task, even for experienced welders. To overcome this difficulty, Trusscillator offers a system that helps pre-assemble the structure, allowing users to position all rods at the right places and at right angles with respect to the spheres before welding starts. For this purpose, we designed a thin metal connector piece that on one side hooks into the holes of the node-sphere, while its other side forms a cantilever spring that fits tightly into the metal tubes and resists slipping out, as shown in the figure below. For a secure connection, two of these metal pieces are inserted in every hole with opposite hook orientation, so none of them will be able to escape the hole when the tube holds them together (b-c). This way they are holding the structure temporarily but firmly together for welding (d). These connector pieces can be produced in a local metalworking shop using CNC machinery. They are considered as consumable material that stays locked inside the structure after welding.
Translating amplitude, frequency, and effort into mass, spring, damper configuration
The main objective behind Trusscillator is to allow users not only to design and build large-scale human-powered structures but also to help them to get the physical properties “right”. The key idea here is to shield users from the underlying physics perspective (where devices are considered mass-spring-damper systems, see below) and to instead, let the users interact in user experience-related dimensions they are familiar with, i.e., range of motion (aka amplitude), frequency of the oscillation (aka tempo), and the time/energy required to swing up the device (aka effort), as illustrated in the figure below. For these input dimensions, Trusscillator determines spring constant and mass configuration to satisfy the user’s design intent. The relationship between the mechanical properties and the experience attributes is illustrated on the right side.
Trusscillator acquires the attributes of the oscillation by running a simulation sequence. During the simulation, the human-mimicking force starts to actuate the device and the amplitude is increasing as the energy is being accumulated in the system, as shown in Figure 15a. Consequently, the velocity of the movement also keeps increasing. However, proportionally to the velocity, viscous damping starts to increase ( ), and this force is counteracting the movement. With the velocity increase, the damping action is dissipating more and more energy into heat; up until the point when the amplitude and velocity are so high that all the input energy of the user is being consumed by damping. The orange line in Figure 15b indicates this time point when the oscillating system has reached the energy equilibrium and the amplitude remains stable.
To exemplify this process, we take the simple bobbing saddle model from Figure 14a, fit with a catalog spring with the stiffness of k = 3376N/m, and damping d = 50 Ns/m, as shown in Figure 15a, and run the simulation for a 12-year-old user (40kg, 75W). Trusscillator then obtains the following information:
Amplitude: Trusscillator takes the largest amplitude from the simulated movement coordinates by finding out the maximum distance between any two points in the time-series for the node of interest. For the example above, it shows that the tip of the child’s head will move about a 1m arc.
Effort: The time required to reach the energy equilibrium (ramp-up time) is what Trusscillator takes to estimate the effort required to swing up the device. Specifically, we take the amplitude measurements and compare at which point in time the occurrence of the largest amplitude drops below a 15% margin from the largest amplitude. The diagram in Figure 15c shows the velocity increase has stabilized after around 3.5s. Trusscillator interprets this effort as easy (up until 5s ramp-up time). From 5s to 10s it is considered just-right and above 10s is laborious, based on our observation of common swinging behavior. This information is then displayed in the effort widget to the user.
Tempo/Frequency: Trusscillator analyzes this 3D velocity data from Figure 15c using Fast Fourier Transform (Figure 15d) and searches for the global maximum. In this example, the structure oscillates with the dominant frequency of 1Hz. This result is then classified as comfortable (0.5-1.5 Hz) based on input from [21]. Higher frequencies are classified as shaky, lower is slow. This information is displayed to the user in the tempo widget.
Interactive editor frontend
Trusscillator builds on the editor components of TrussFab and TrussFormer, which provide the core functionality to create, save, load, and export static and kinematic structures. Both the editors as well as, Trusscillator’s frontend as well, are implemented as a plugin for Sketchup Version 17using the Ruby programming language.
Trusscillator’s simulator and optimizer package runs as a stand-alone server and communicates via HTTP with the UI and the Sketchup Plugin. Sketchup transfers the model, encoded as a JSON string, to the simulation server. It contains the graph representation of the structure, including the lengths, spring and user positions, and the state of the requested behavior. For running a simulation, the server derives a system of equation from this structure by mapping the input graph structure onto simulation components, such that the entire model can be expressed in the following form: , where u is the state vector of the system, pis the parameter vector, and t the time, as follows from [35]. This representation treats all the nodes essentially as ball-joint connections with point masses. For any arbitrary structure, the state of the system is uniquely defined by the positions and velocities of individual nodes.
With NetworkDynamics.jl, we provide a graph structure and specify the respective functions for every component separately, serving as a lightweight layer that separates concerns. Here, we specify four components: nodes, spring-dampers, rigid edges, and fixtures. These components are mapped one-to-one from the model created in the editor.
Optimization
To change the motion experience, Trusscillator has access to modify the two mechanical properties, namely mass (by adding weights to the structure) and stiffness (by choosing a spring from a catalog). We assume damping to be fixed as an inherent property of the material of the coil springs. This results in a challenging limitation for tuning the experience, where not all the criteria can be satisfied at all times. For this reason, Trusscillator utilizes a sampling-based optimization approach.
The figure below illustrates Trusscillator’s optimization procedure, which is loosely inspired by the simulated annealing strategy. First, the algorithm searches for a viable baseline configuration. It assumes one global spring constant for all springs in the structure. It covers the range between 3kN/m and 20kN/m spring in intervals determined by the preset resolution (e.g., 10). After each simulation, we evaluate the simulation runs with the target metrics that we want to optimize and assign a distance to every sample using the distance function. We store the best (i.e., closest result) and proceed with optimizing the springs with a higher resolution one by one. We proceed analogously to the global sampling, only this time we don't consider the full spectrum of springs but only a window around the currently best assignment (e.g., ± 2kN/m), and every sample is being simulated with a range of additional masses. To avoid combinatorial explosion, we only place one mass in every local search step and place it at the highest point on one adjacent rigid group (heuristically assuming that this has the largest effect on the result). After every sampling round, we store the best parameter assignment and resume it for the next spring. After all the springs have been processed, we return the best matching parameter assignment of the last round.
This algorithm returns in O(n) sampling steps, where n is the number of springs, assuming that sufficient computing resources to run all simulations for a given sample in parallel are available. Parallelizing the simulations within one sampling round and reducing the dependencies of consecutive steps is key for reducing response times and enabling interactivity.
Conclusion
We presented Trusscillator, an end-to-end system that enables novice users to design and build human-scale human-powered machines. As we learned in our expert interviews, such devices are usually subject to long design and prototyping cycles. Trusscillator speeds up this process by encapsulating large parts of the required domain knowledge from designing structurally stable mechanisms, through tuning and verifying their dynamic behavior, to building processes and tools.
Zooming out, we think of Trusscillator as a tool that pushes research on large-scale personal fabrication in two ways. First, it goes the next logistical step from systems supporting static construction to kinematic construction to now dynamic construction. Second, it provides a computer-assisted system for the personal fabrication of welded steel structures, thereby laying the groundwork for scaling this line of research to bigger structures and larger forces.
As future work, we plan to introduce dampers into large-scale personal fabrication, allowing users to design large-scale mass-spring-damper systems.
Acknowledgements
We thank Philippa, Oli, and Tisza for playtesting our demo objects, Daniela Vogel for the design of the UI elements, and Hany Elhassany, Paul Methfessel, and Martin Taraz for their help with the welding works.