3D printing is an emerging technique in product manufacturing. Its applications have been expanding vastly in homebased production. Compared to traditional manufacturing techniques, such as Computerized Numeric Control (CNC) machine tools, it is believed that 3D printing is more cost effective in fabricating personalized products. The product cost estimation in 3D printing mainly takes material expenditure into account, and extensive studies have been performed for reducing filament expense or development of recyclable filaments. However, electricity expenditure is another inevitable cost in the 3D printing process yet an omitted factor in the cost estimation. To this end, this paper introduces the first in-depth study to understand the energy consumption in 3D printing. Specifically, our study comprises of two parts. The first part quantifies both material and electricity use in the 3D printing, and find that the electricity takes up to 32% of the total cost. The second part characterizes the energy consumption and identifies the sensitivity of various parameters.We also share insights and potential solutions to optimize the power consumption of 3D printers.
One of the reasons programming mobile systems is so hard is the wide variety of environments a typical app encounters at runtime. As a result, in many cases only post-deployment user testing can determine the right algorithm to use, the rate at which something should happen, or when an app should attempt to conserve energy. Programmers should not be forced to make these choices at development time. Unfortunately, languages leave no way for programmers to express and structure uncertainty about runtime conditions, forcing them to adopt ineffective or fragile ad-hoc solutions. We introduce a new approach based on structured uncer-tainty through a new language construct: the maybe statement. maybe statements allow programmers to defer choices about app behavior that cannot be made at development time, while providing enough structure to allow a system to later adaptively choose from multiple alternatives. Eliminating the uncertainty introduced by maybe statements can be done in a large variety of ways: through simulation, split-testing, user configuration, temporal adaptation, or machinelearning techniques, depending on the type of adaptation appropriate for each situation. Our paper motivates the maybe statement, presents its syntax, and describes a complete system for testing and choosing from maybe alternatives.