## Inspiration

At our high school, freshmen are required to take an introduction to engineering course where students learn the basics of the design process and fundamentals of CAD modeling. While learning CAD modeling, many students struggled with understanding orthographic, oblique, perspective, and isometric views. It was often difficult to completely model an object without running into some sort of error. This is where Generat3D comes into play.

## What it does

Our program, Generat3D, takes 2D orthographic images as inputs. With the vertices highlighted in bright red, the program is able to detect the vertices of the object and its general shape and dimensions. With the vertices' coordinates determined and stored, the program writes the necessary code within an stl file in order to create the 3D rendering of the object.

## How we built it

BlueJ and Eclipse combined with Java were used primarily to code the program. By using predefined pixel, color, and picture classes, a vertex approximation algorithm was developed. With the data parsed, coordinates were analyzed and written directly to a .stl file. Sample code representing .stl files as ASCII characters were researched online. Once the .stl file was complete, it could be open on Windows 3D Builder.

## Challenges we ran into

The first problem we ran into was how to code an actual CAD file. The file we were familiar with was an .ipt from Autodesk Inventor. However, there was no way for us to accurately code this. However, after some quick research, we learned of a simpler file typically used when developing CAD systems. This file was called an .stl which could be coded in ASCII. Finding this file type and learning how to manipulate it significantly helped our project.

Another problem we encountered was edge detection of an image. Initially, we planned to take a picture of an actual object and detect the border of object. However, our software was not sophisticated enough to properly determine the object's boundary. Furthermore, when writing to the .stl file, specific vertices are needed, not entire edges. We found it difficult to locate vertices given edges. As a result, a simplified vertex detection algorithm was defined that searches for points highlighted in the 2D drawing by the engineer.

The final major problem we encountered was actually drawing the 3D image. stl files are unique in that one can only code triangular faces. We found it difficult to organize coordinates in such a way so that the correct faces are drawn rather than faces that folded in on themselves. In order to combat this problem, we limited the maximum number of vertices and simply drew a face between any three vertices.

## Accomplishments that we're proud of

Despite not quite reaching our goal when we first came to the hackathon, we are proud that we were able to develop a working program by the end of the hackathon. By the end of day one, we were doubtful whether we would actually have something to submit because of all the problems we ran into. However, after much persistence, a final project that can be seen was finally developed.

## What we learned

By performing this hack, we learned a lot about the .stl file format. We were previously completely oblivious regarding its usage, but now we have a reasonable grasp over the ASCII style of coding.

## What's next for Generat3D

Currently, is limited to right prisms with a convex face. Lack of time did not allow for a sophisticated edge and vertex detection algorithm. In the future, we hope to improve on this problem, making the program workable for all shapes and sizes. In addition, we hope to make it usable for images of actual, real life objects rather than solely 2D orthographic drawings.
## Inspiration

Painting, pastels, sketching - they all put colour on a 2D canvas. But we live in a 3D world, not a 2D one, so being confined to a flat canvas is inauthentic and limiting. Technology has advanced, so it's time for art to advance with it, to take the plunge from 2D to a much more colourful and real 3D. Unfortunately, 3D modelling is difficult and unintuitive. Because of the limitations of a mouse and keyboard, it's often implemented as giving 2D objects a thickness (for an example, see Solidworks). Blocking the amateur is a steep learning curve, a large time commitment and expensive software. This limits 3D modelling to use only by professionals, and blocks it from becoming a popular art form.

## What is 3Draw

Imagine moving a pen in 3D, and seeing its 3D trajectory on a screen. You could draw a chair, or a tree, with absolutely no instructions beyond "press space to start or place a line, and press escape to exit from a line". Add a few colours and some basic functionality, and you've got 3D modelling that anyone can use.

## How I build it:

First, I built a circuit containing two breadboards, an LED, 6 phototransistors and a few resistors wired to an Arduino UNO. Then, I measured the light cone of the LED, did a few back-of-the-napkin calculations and drew the enclosure on AutoCAD. I used one of the laser cutters at the makerspace to cut the enclosure out of acrylic, then spent a few hours getting all of the sensors and wires to fit in the box. Finally, I wrote a Python program that receives the light sensor data from the Arduino, triangulates the LED position and draws the figure using vpython. There is an option to export the figure as an STL (3D printable) file, which was implemented using the PyCAD library.

All of the code is available on the linked github.
## Inspiration

We are tired of being forgotten and not recognized by others for our accomplishments. We built a software and platform that helps others get to know each other better and in a faster way, using technology to bring the world together.

## What it does

Face Konnex identifies people and helps the user identify people, who they are, what they do, and how they can help others.

## How we built it

We built it using Android studio, Java, OpenCV and Android Things

## Challenges we ran into

Programming Android things for the first time. WiFi not working properly, storing the updated location. Display was slow. Java compiler problems.

## Accomplishments that we're proud of.

Facial Recognition Software Successfully working on all Devices, 1. Android Things, 2. Android phones.
Prototype for Konnex Glass Holo Phone.
Working together as a team.

## What we learned

Android Things, IOT,
Advanced our android programming skills
Working better as a team

## What's next for Konnex IOT

Improving Facial Recognition software, identify and connecting users on konnex
Inputting software into Konnex Holo Phone