This library contains a set of variables and functions to facilitate the design of mobile device augmentations towards musical instrument making. The main idea behind this concept is to place mobile devices at the heart of hybrid musical instruments that are partly physical and partly virtual. In its current state, this library focuses on passive augmentations that leverage elements already present on the device: microphone, speaker, sensors (accelerometers, gyroscope, touch screen, etc.).

This is a sub-project of the hybrid lutheries project.

This documentation was generated using the generateDocumentation script contained in this repository.

Code

The code of Mobile 3D is available on GitHub.

Supported Devices

Examples

The /examples folder contains a series of examples demonstrating how to use this library.

Check out the CCRMA composed instrument summer workshop website for some concrete use examples of mobile3D.

API Reference

basics.scad

This library contains basic elements to construct mobile device augmentations.

roundedCube

A cube with rounded edges on the depth axis. This function is helpful for creating simple phone shapes.

roundedCube(dimension,edgeRadius)

Where


bottomHolder

A basic generic element to hold the bottom part of a device

bottomHolder(deviceWidth,deviceDepth,deviceEdgeRadius,deviceHeightInHolder,wallThickness,holderEdgeRadius)

Where


topHolder

A basic generic element to hold the top part of a device

topHolder(deviceWidth,deviceDepth,deviceEdgeRadius,deviceHeightInHolder,wallThickness,lipsWidth,holderEdgeRadius)

Where


rectangleCircularHorn

A horn with a square termination on one side and a circle termination on the other.

rectangleCircularHorn(rectangleWidth,rectangleHeight,circleRadius,hornLength,wallThickness,hornDeformationFactor,hornDerivation,endsHeight)

Where


halfSphere

A half sphere useful to create tops.

halfSphere(radius)

Where


halfCylinder

A half cylinder with controllable height.

halfCylinder(dimension=[10,10,10])

Where

iPhone5

A very simple iPhone 5 model.


iPhone5_BottomHolder

A customizable element that can be used to hold an iPhone 5 from the bottom. This part is meant to be printed with an elastic material such as Ninjaflex.

iPhone5_BottomHolder(wallThickness,depth,speakerHole,audioJackHole,lighteningHole)

Where

Associated Global Variables


iPhone5_TopHolder

An element that can be used to hold an iPhone 5 from the top. This part is meant to be printed with an elastic material such as Ninjaflex.

iPhone5_TopHolder(wallThickness,depth)`

Where

wallThickness: the thcikness of the walls depth: the depth of the device in the holder

Associated Global Variables

iPhone5_TopHolder_Depth: the depth of the device in the holder iPhone5_TopHolder_OnOffHoleWidth: the on/off button width iPhone5_TopHolder_OnOffHoleHeight: the on/off button height iPhone5_TopHolder_OnOffHoleXOffset: the on/off button X position iPhone5_TopHolder_OnOffHoleYOffset: the on/off button Y position


iPhone5_BasePlate

A simple plate to put the bottom and top holder together. This part is meant to be laser cut from an acrylic plate.

iPhone5_BasePlate(wallThickness,plateThickness)

Where

Associated Global Variables


iPhone5_PlateWithSideHandle

A simple plate where the iPhone 5 can be mounted using iPhone5_BottomHolder and iPhone5_TopHolder and that adds a side handle to the device. This part is meant to be laser cut from an acrylic plate.

iPhone5_PlateWithSideHandle(height,handleWidth,handleHoleWidth,handleHoleBorder,wallThickness,plateThickness,edgeRadius)

Where

Associated Global Variables


iPhone5_HolderPlate

A simple plate where the iPhone 5 can be mounted using iPhone5_BottomHolder and iPhone5_TopHolder and that adds handles to the device. This part is meant to be laser cut from an acrylic plate.

iPhone5_HolderPlate(handleWidth,wallThickness,plateThickness)

Where

Associated Global Variables


iPhone5_HolderPlateElec

Similar to iPhone5_HolderPlate() except that a module has been adeed to install electronic components to it. This part is meant to be laser cut from an acrylic plate.

`iPhone5_HolderPlateElec(handleWidth,wallThickness,plateThickness,elecModuleHeight,elecModuleEdgeRadius)

Where

Associated Global Variables


iPhone5_HolderPlateElecTop

A simple cover for the electronic components used with iPhone5_HolderPlateElec. This part is meant to be laser cut from an acrylic plate.

iPhone5_HolderPlateElecTop(wallThickness,plateThickness,elecModuleHeight,elecModuleEdgeRadius)

Where

Associated Global Variables


iPhone5_GenericHorn

A customizable horn that plugs to the built-in speaker of the iPhone 5. It comes with a base plate that is used to easily glue the horn to the bottom holder. This part is meant to be printed with PLA or ABS.

iPhone5_GenericHorn(hornRadius,hornLength,hornDeformationFactor,hornDerivation,wallThickness,hornThickness,basePlateThickness)

Where


iPhone5_SmallPassiveAmp

A small passive amplifier for the iPhone 5 that can be glued to iPhone5_BottomHolder. This part is meant to be printed with PLA or ABS.

iPhone5_SmallPassiveAmp(hornRadius,hornLength,hornDeformationFactor,hornDerivation,wallThickness,hornThickness,basePlateThickness)

Where

Associated Global Variables


iPhone5_LargePassiveAmp

A large passive amplifier with a reinforcement bar for the iPhone 5 that can be glued to iPhone5_BottomHolder. This part is meant to be printed with PLA or ABS.

iPhone5_LargePassiveAmp(hornRadius,hornLength,hornDeformationFactor,hornDerivation,wallThickness,hornThickness,basePlateThickness,reinforcementBarWidth)

Where

Associated Global Variables


iPhone5_Case

A simple iPhone 5 case.


iPhone5_CaseWithSideHandle

A iPhone 5 case with a side handle.


iPhone5_CaseWithSmallPassiveAmp

A case for the iPhone 5 with a small passive amplifier.


iPhone5_CaseWithLargePassiveAmp

A case for the iPhone 5 with a large passive amplifier.


iPhone5_CaseWithSmallPassiveAmp

A case for the iPhone 5 with a small passive amplifier.


iPhone5_CaseWithSideHandleAndPassiveAmp

An iPhone 5 case with a side handle and a small passive amplifier.


iPhone5_CaseTop

A case that turn the iPhone 5 into a top.


iPhone5_CaseRock

A iPhone 5 case with a swing on it to rock it.

iPhone5_CaseRock(swingWidth)

Where

Associated Global Variables


iPhone5_HolderWithElectronics

A case for the iPhone 5 with handles and that can host extra electronic components.

iPhone6Plus

A very simple iPhone 6 model.


iPhone6Plus_BottomHolder

A customizable element that can be used to hold an iPhone 6 Plus from the bottom. This part is meant to be printed with an elastic material such as Ninjaflex.

iPhone6Plus_BottomHolder(wallThickness,depth,speakerHole,audioJackHole,lighteningHole)

Where

Associated Global Variables


iPhone6Plus_TopHolder

An element that can be used to hold an iPhone 6 Plus from the top. This part is meant to be printed with an elastic material such as Ninjaflex.

iPhone6Plus_TopHolder(wallThickness,depth)`

Where

wallThickness: the thcikness of the walls depth: the depth of the device in the holder

Associated Global Variables

iPhone6Plus_TopHolder_Depth: the depth of the device in the holder iPhone6Plus_TopHolder_CameraHoleRadius: the radius of the camera hole iPhone6Plus_TopHolder_CameraHoleXOffset: the camera hole X position iPhone6Plus_TopHolder_CameraHoleYOffset: the camera hole Y position iPhone6Plus_TopHolder_OnOffHoleWidth: the on/off button width iPhone6Plus_TopHolder_OnOffHoleHeight: the on/off button height iPhone6Plus_TopHolder_OnOffHoleXOffset: the on/off button X position iPhone6Plus_TopHolder_OnOffHoleYOffset: the on/off button Y position


iPhone6Plus_BasePlate

A simple plate to put the bottom and top holder together. This part is meant to be laser cut from an acrylic plate.

iPhone6Plus_BasePlate(wallThickness,plateThickness)

Where

Associated Global Variables


iPhone6Plus_PlateWithSideHandle

A simple plate where the iPhone 6 Plus can be mounted using iPhone6Plus_BottomHolder and iPhone6Plus_TopHolder and that adds a side handle to the device. This part is meant to be laser cut from an acrylic plate.

iPhone6Plus_PlateWithSideHandle(height,handleWidth,handleHoleWidth,handleHoleBorder,wallThickness,plateThickness,edgeRadius)

Where

Associated Global Variables


iPhone6Plus_HolderPlate

A simple plate where the iPhone 6 Plus can be mounted using iPhone6Plus_BottomHolder and iPhone6Plus_TopHolder and that adds handles to the device. This part is meant to be laser cut from an acrylic plate.

iPhone6Plus_HolderPlate(handleWidth,wallThickness,plateThickness)

Where

Associated Global Variables


iPhone6Plus_HolderPlateElec

Similar to iPhone6Plus_HolderPlate() except that a module has been adeed to install electronic components to it. This part is meant to be laser cut from an acrylic plate.

iPhone6Plus_HolderPlateElec(handleWidth,wallThickness,plateThickness,elecModuleHeight,elecModuleEdgeRadius)

Where

Associated Global Variables


iPhone6Plus_HolderPlateElecTop

A simple cover for the electronic components used with iPhone6Plus_HolderPlateElec. This part is meant to be laser cut from an acrylic plate.

iPhone6Plus_HolderPlateElecTop(wallThickness,plateThickness,elecModuleHeight,elecModuleEdgeRadius)

Where

Associated Global Variables


iPhone6Plus_GenericHorn

A customizable horn that plugs to the built-in speaker of the iPhone 6 Plus. It comes with a base plate that is used to easily glue the horn to the bottom holder. This part is meant to be printed with PLA or ABS.

iPhone6Plus_GenericHorn(hornRadius,hornLength,hornDeformationFactor,hornDerivation,wallThickness,hornThickness,basePlateThickness)

Where


iPhone6Plus_SmallPassiveAmp

A small passive amplifier for the iPhone 6 Plus that can be glued to iPhone6Plus_BottomHolder. This part is meant to be printed with PLA or ABS.

iPhone6Plus_SmallPassiveAmp(hornRadius,hornLength,hornDeformationFactor,hornDerivation,wallThickness,hornThickness,basePlateThickness)

Where

Associated Global Variables


iPhone6Plus_LargePassiveAmp

A large passive amplifier with a reinforcement bar for the iPhone 6 Plus that can be glued to iPhone6Plus_BottomHolder. This part is meant to be printed with PLA or ABS.

iPhone6Plus_LargePassiveAmp(hornRadius,hornLength,hornDeformationFactor,hornDerivation,wallThickness,hornThickness,basePlateThickness,reinforcementBarWidth)

Where

Associated Global Variables


iPhone6Plus_Case

A simple iPhone 6 Plus case.


iPhone6Plus_CaseWithSmallPassiveAmp

A case for the iPhone 6 Plus with a small passive amplifier.


iPhone6Plus_CaseWithSmallPassiveAmp

A case for the iPhone 6 Plus with a small passive amplifier.


iPhone6Plus_CaseWithSideHandleAndPassiveAmp

An iPhone 6 Plus case with a side handle and a small passive amplifier.


iPhone6Plus_CaseRock

A iPhone 6 Plus case with a swing on it to rock it.

iPhone6Plus_CaseRock(swingWidth)

Where

Associated Global Variables


iPhone6Plus_HolderWithElectronics

A case for the iPhone 6 Plus with handles and that can host extra electronic components.

iPhone6

A very simple iPhone 6 model.


iPhone6_BottomHolder

A customizable element that can be used to hold an iPhone 6 from the bottom. This part is meant to be printed with an elastic material such as Ninjaflex.

iPhone6_BottomHolder(wallThickness,depth,speakerHole,audioJackHole,lighteningHole)

Where

Associated Global Variables


iPhone6_TopHolder

An element that can be used to hold an iPhone 6 from the top. This part is meant to be printed with an elastic material such as Ninjaflex.

iPhone6_TopHolder(wallThickness,depth)

Where

Associated Global Variables


iPhone6_BasePlate

A simple plate to put the bottom and top holder together. This part is meant to be laser cut from an acrylic plate.

iPhone6_BasePlate(wallThickness,plateThickness)

Where

Associated Global Variables


iPhone6_PlateWithSideHandle

A simple plate where the iPhone 6 can be mounted using iPhone6_BottomHolder and iPhone6_TopHolder and that adds a side handle to the device. This part is meant to be laser cut from an acrylic plate.

iPhone6_PlateWithSideHandle(height,handleWidth,handleHoleWidth,handleHoleBorder,wallThickness,plateThickness,edgeRadius)

Where

Associated Global Variables


iPhone6_HolderPlate

A simple plate where the iPhone 6 can be mounted using iPhone6_BottomHolder and iPhone6_TopHolder and that adds handles to the device. This part is meant to be laser cut from an acrylic plate.

iPhone6_HolderPlate(handleWidth,wallThickness,plateThickness)

Where

Associated Global Variables


iPhone6_HolderPlateElec

Similar to iPhone6_HolderPlate() except that a module has been adeed to install electronic components to it. This part is meant to be laser cut from an acrylic plate.

iPhone6_HolderPlateElec(handleWidth,wallThickness,plateThickness,elecModuleHeight,elecModuleEdgeRadius)

Where

Associated Global Variables


iPhone6_HolderPlateElecTop

A simple cover for the electronic components used with iPhone6_HolderPlateElec. This part is meant to be laser cut from an acrylic plate.

iPhone6_HolderPlateElecTop(wallThickness,plateThickness,elecModuleHeight,elecModuleEdgeRadius)

Where

Associated Global Variables


iPhone6_GenericHorn

A customizable horn that plugs to the built-in speaker of the iPhone 6. It comes with a base plate that is used to easily glue the horn to the bottom holder. This part is meant to be printed with PLA or ABS.

iPhone6_GenericHorn(hornRadius,hornLength,hornDeformationFactor,hornDerivation,wallThickness,hornThickness,basePlateThickness)

Where


iPhone6_SmallPassiveAmp

A small passive amplifier for the iPhone 6 that can be glued to iPhone6_BottomHolder. This part is meant to be printed with PLA or ABS.

iPhone6_SmallPassiveAmp(hornRadius,hornLength,hornDeformationFactor,hornDerivation,wallThickness,hornThickness,basePlateThickness)

Where

Associated Global Variables


iPhone6_LargePassiveAmp

A large passive amplifier with a reinforcement bar for the iPhone 6 that can be glued to iPhone6_BottomHolder. This part is meant to be printed with PLA or ABS.

iPhone6_LargePassiveAmp(hornRadius,hornLength,hornDeformationFactor,hornDerivation,wallThickness,hornThickness,basePlateThickness,reinforcementBarWidth)

Where

Associated Global Variables


iPhone6_Case

A simple iPhone 6 case.


iPhone6_CaseWithSideHandle

A iPhone 6 case with a side handle.


iPhone6_CaseWithSmallPassiveAmp

A case for the iPhone 6 with a small passive amplifier.


iPhone6_CaseWithLargePassiveAmp

A case for the iPhone 6 with a large passive amplifier.


iPhone6_CaseWithSmallPassiveAmp

A case for the iPhone 6 with a small passive amplifier.


iPhone6_CaseWithSideHandleAndPassiveAmp

An iPhone 6 case with a side handle and a small passive amplifier.


iPhone6_CaseTop

A case that turn the iPhone 6 into a top.


iPhone6_CaseRock

A iPhone 6 case with a swing on it to rock it.

iPhone6_CaseRock(swingWidth)

Where

Associated Global Variables


iPhone6_HolderWithElectronics

A case for the iPhone 6 with handles and that can host extra electronic components.

iPodTouch6

A very simple iPod Touch 6 model.


iPodTouch6_BottomHolder

// A customizable element that can be used to hold an iPod Touch 6 from the bottom. This part is meant to be printed with an elastic material such as Ninjaflex.

iPodTouch6_BottomHolder(wallThickness,depth,speakerHole,audioJackHole,lighteningHole)

Where

Associated Global Variables


iPodTouch6_TopHolder

An element that can be used to hold an iPod Touch 6 from the top. This part is meant to be printed with an elastic material such as Ninjaflex.

iPodTouch6_TopHolder(wallThickness,depth)`

Where

wallThickness: the thcikness of the walls depth: the depth of the device in the holder

Associated Global Variables

iPodTouch6_TopHolder_Depth: the depth of the device in the holder iPodTouch6_TopHolder_CameraHoleRadius: the radius of the camera hole iPodTouch6_TopHolder_CameraHoleXOffset: the camera hole X position iPodTouch6_TopHolder_CameraHoleYOffset: the camera hole Y position iPodTouch6_TopHolder_OnOffHoleWidth: the on/off button width iPodTouch6_TopHolder_OnOffHoleHeight: the on/off button height iPodTouch6_TopHolder_OnOffHoleXOffset: the on/off button X position iPodTouch6_TopHolder_OnOffHoleYOffset: the on/off button Y position


iPodTouch6_BasePlate

A simple plate to put the bottom and top holder together. This part is meant to be laser cut from an acrylic plate.

iPodTouch6_BasePlate(wallThickness,plateThickness)

Where

Associated Global Variables


iPodTouch6_PlateWithSideHandle

A simple plate where the iPod Touch 6 can be mounted using iPodTouch6_BottomHolder and iPodTouch6_TopHolder and that adds a side handle to the device. This part is meant to be laser cut from an acrylic plate.

iPodTouch6_PlateWithSideHandle(height,handleWidth,handleHoleWidth,handleHoleBorder,wallThickness,plateThickness,edgeRadius)

Where

Associated Global Variables


iPodTouch6_HolderPlate

A simple plate where the iPod Touch 6 can be mounted using iPodTouch6_BottomHolder and iPodTouch6_TopHolder and that adds handles to the device. This part is meant to be laser cut from an acrylic plate.

iPodTouch6_HolderPlate(handleWidth,wallThickness,plateThickness)

Where

Associated Global Variables


iPodTouch6_HolderPlateElec

Similar to iPodTouch6_HolderPlate() except that a module has been adeed to install electronic components to it. This part is meant to be laser cut from an acrylic plate.

iPodTouch6_HolderPlateElec(handleWidth,wallThickness,plateThickness,elecModuleHeight,elecModuleEdgeRadius)

Where

Associated Global Variables


iPodTouch6_HolderPlateElecTop

A simple cover for the electronic components used with iPodTouch6_HolderPlateElec. This part is meant to be laser cut from an acrylic plate.

iPodTouch6_HolderPlateElecTop(wallThickness,plateThickness,elecModuleHeight,elecModuleEdgeRadius)

Where

Associated Global Variables


iPodTouch6_GenericHorn

A customizable horn that plugs to the built-in speaker of the iPod Touch. It comes with a base plate that is used to easily glue the horn to the bottom holder. This part is meant to be printed with PLA or ABS.

iPodTouch6_GenericHorn(hornRadius,hornLength,hornDeformationFactor,hornDerivation,wallThickness,hornThickness,basePlateThickness)

Where


iPodTouch6_SmallPassiveAmp

A small passive amplifier for the iPod Touch 6 that can be glued to iPodTouch6_BottomHolder. This part is meant to be printed with PLA or ABS.

iPodTouch6_SmallPassiveAmp(hornRadius,hornLength,hornDeformationFactor,hornDerivation,wallThickness,hornThickness,basePlateThickness)

Where

Associated Global Variables


iPodTouch6_LargePassiveAmp

A large passive amplifier with a reinforcement bar for the iPod Touch 6 that can be glued to iPodTouch6_BottomHolder. This part is meant to be printed with PLA or ABS.

iPodTouch6_LargePassiveAmp(hornRadius,hornLength,hornDeformationFactor,hornDerivation,wallThickness,hornThickness,basePlateThickness,reinforcementBarWidth)

Where

Associated Global Variables


iPodTouch6_Case

A simple iPod Touch 6 case.


iPodTouch6_CaseWithSideHandle

A iPod Touch 6 case with a side handle.


iPodTouch6_CaseWithSmallPassiveAmp

A case for the iPod Touch 6 with a small passive amplifier.


iPodTouch6_CaseWithLargePassiveAmp

A case for the iPod Touch 6 with a large passive amplifier.


iPodTouch6_CaseWithSmallPassiveAmp

A case for the iPod Touch 6 with a small passive amplifier.


iPodTouch6_CaseWithSideHandleAndPassiveAmp

An iPod Touch 6 case with a side handle and a small passive amplifier.


iPodTouch6_CaseTop

A case that turn the iPod Touch 6 into a top.


iPodTouch6_CaseRock

A iPod Touch 6 case with a swing on it to rock it.

iPodTouch6_CaseRock(swingWidth)

Where

Associated Global Variables


iPodTouch6_HolderWithElectronics

A case for the iPod Touch 6 with handles and that can host extra electronic components.