# How to Make Almost Anything - Building 3D Interfaces

## Three.js:
- Examples:
    - [Three.js Examples](https://threejs.org/examples/)
    - [A world of Oil](https://www.gsmlondon.ac.uk/global-oil-map/)
    - [Cruciform](https://www.clicktorelease.com/code/cruciform/)
    - [Renault](https://renaultespace.littleworkshop.fr/)

- Tutorials:
    - [Lynda: Learning 3D Graphics on the Web with Three.js](https://www.lynda.com/JavaScript-tutorials/Learning-3D-Graphics-Web-Three-js/586668-2.html)
    - [WebGL](https://webglfundamentals.org/webgl/lessons/webgl-fundamentals.html)

- Topics Covered:
    - Scene and Camera
        - Camera
        - Renderer
        - Objects Positions and properties
    - Primitives and Transforms
        - Update Renderer
        - Name to objects
        - Rotate each frame
        - Parent-Child relationship
        - Scene traverse
    - Control
        - Data.gui
        - orbit control
    - Material and Light
        - Change material
        - Change to multple objects
        - Change light type
        - Realistic Material 
    - Mesh Manipulation and Data
        - Boxes Movement
        - Vertices Manipulation

## Unity:
- Examples:
    - [Examples](https://unity.com/madewith?_ga=2.185694379.36137922.1543245587-676820850.1535121275)
- Tutorials:
    - [Lynda: Advanced Unity: 3D Game Programming](https://www.lynda.com/Unity-3D-tutorials/Advanced-Unity-3D-Game-Programming/160270-2.html)
    - [Example Projects](https://unity3d.com/learn/resources/downloads)
- Integration with Hardware:
    - [Unity and Arduino](http://www.alanzucconi.com/2015/10/07/how-to-integrate-arduino-with-unity/)
    - [Week 11](http://fab.cba.mit.edu/classes/863.16/section.Harvard/people/Abdel-Rahman/index.html)
- Topics Covered:
    - Unity Interface
    - First Script
        - Box Rotation
    - Input
        - Keyboard
        - Mouse
    - Mesh Manipulation
        - Building Meshes
        - Dynamic Mesh
    - Exporting to webgl