Week 02: Computer-Aided Design
This week has been pretty fun. The topic is one that I've had a bit of experience with previously: Computer-Aided Design, which ranges from simple 2D image designs to complicated 3D simulations and designs.
I also got to go to Madeira with a friend where I worked on my projects while enjoying nature. That sidequest was really fun, but it meant I had less time to work on the assignment and final projects this week. Nevertheless, done > perfect, and those are skills that I will be improving throughout Fab Academy.
Given my time constraints, the goal this week was to create a 2D vector design, a logo for my project, and a 3D initial design for my glasses. Yup, I chose that for my final project, go to the final project page to learn more about my decision. I will complete those and continue building on top of them as we go.
Learning from the Global Session
This week's global session was taught by Sophia Brueckner and Kenny Cheung. Sophia has been teaching Sci-fi prototyping, and Kenny worked at NASA on making infrastructure in space.
Designers learn from engineers about design and engineers learn from designers about engineering.
Neil talked about why there is a strict limit on storage: it is a constraint not about price but rather compressed formats make sites much more accessible and faster.
What is CAD?
CAD is the use of computers to assist in the creation, modification, analysis, or optimization of a design. CAD is pretty much any design on a computer.
For 2D designs, raster images (jpg, png, gif, tif) aren't really good for communicating to a machine. Vector formats (dxf, ai, svg) are preferable for fabrication. Boolean operations are one way to create more complex shapes from simple shapes like differences and unions.

Ways to Create with 3D Shapes
- Start with 2D shapes and extrude, revolve, sweep, or loft
- Sketch on the face of 3D objects
- Boolean operations
- Sculpting meshes
- Fillets and chamfers to round edges or slice straight lines
- Offsetting
- Measurements
- Rendering
- Animation (Blender)
Important features to know:
- History/Hierarchies, available in Fusion and FreeCAD
- Constraints on a sketch: you can put specifications like making certain lines always the same length as each other, which is usually more relevant for engineers
- Assemblies: constraints on 3D shapes in their relationship to others
- Parametric CAD: usually two styles, spreadsheets of named dimensions and equations which include things like hole diameters, tab sizes, and material thickness, or node-based visual programming where varying inputs varies the output 3D models. You are designing a system that could produce different shapes (Blender has this functionality with geometry nodes). Sometimes it is just faster to write it in Python. This is required for laser cutters.
- Agent-based Modeling: simulations to study interactions between people, things, places, and time
Mechanical Analysis is really powerful in simulation, but what you could do on paper is still extremely powerful!
Software Recommendations
- Solidworks wins for production
- Fusion is mostly best for end-to-end
- Onshape for cloud
- FreeCAD wins for open source and has a ton of tools
- Blender for graphics and animation
For next week, we are going to design a parametric construction kit, so it is important that this week we learn parametric design so next week we don't get stuck learning something else.
2D Vector Design: A Logo for My Project
I have previously worked extensively with some of Adobe's products like Illustrator and Photoshop, but this week I wanted to try an open-source tool: Inkscape.
Here is a cheat sheet I found for using Inkscape after being an Illustrator user, since the shortcuts are quite different: Inkscape for Adobe Illustrator users
Fun fact
Pixel stands for picture elements!
I wanted the logo to have AR glasses that show the project title combined with a representation of the brain in the middle of the glasses. I started by sketching an idea on my "notebook" (GoodNotes on my iPad):

Then, I started brainstorming logo designs with ChatGPT image and nano-banana-Pro. They already have context about my project in their memory, so I attached the sketch and told them to start exploring how it could look.
Logo Generation Prompt
"based on what you know about my project, generate a logo based on the attached design."
Here are the results from nano-banana-Pro:


And from ChatGPT:

I really liked the first design by nano-banana. With better prompts I could have gotten better results, but my goal here was just to visualize how my design idea could end up looking because I want to do the actual vector design in Inkscape, since we will also need that skill next week for computer controlled cutting. I am also planning to make this into stickers :)
I started designing in Inkscape to create the first lens of the glasses:

As I was designing, I thought: is there any way I could translate the design nano-banana generated into an SVG that I could edit, refine, and practice my vector editing skills on in Inkscape?
Turns out yes! So I took the first image and put it into the tool picsvg.com:

Well, that wasn't the result I really wanted. But why?
Why picsvg struggled with this
Picsvg converts raster images (JPG, PNG, GIF) into scalable SVG vector format by tracing pixel edges and converting them into mathematical paths and shapes. Detailed images, like the one I uploaded, convert poorly because every texture, gradient, and color variation becomes a separate vector path, creating massive file sizes and losing photographic quality.
So I prompted nano-banana-Pro to reduce the details:
Simplification Prompt
"Make this design into a very simple svg without black lines and without background colors."
Here is the result:

I started cleaning up the SVG since it had weird unnecessary paths, but the issue was that it made the whole thing into one single path. So I went back to nano-banana-Pro:
Separation Prompt
"Separate each element"
Then went back to the SVG tool:


I cleaned it up again in Inkscape and started editing the design. At the top is what I designed myself in Inkscape:

I wanted to make some edits to the design like changing the glasses lens designs, using a different font for the name, and a different EEG pattern. I removed the old path I started and completely edited the SVG provided by nano-banana-Pro, changing its design and colors. This shows all the different layers that I edited:

Through Inkscape's tools, with inspiration from the designs I generated through nano-banana-Pro and converted to SVG, I created the new glasses frame design based on the one I got from nano-banana, edited different parts of the brain and the signals, then created text with the name of the project and turned it into a path with a custom design for the AR part.
I had previously done similar work, but it is crazy how AI makes the process much faster.
3D Design: Glasses Frame
There have been AR projects in the past that are very reliable and great resources to learn from as a basis to continue building upon. I am utilizing the open source smart glasses from the Mentra Community: OpenSourceSmartGlasses
Shoutout to Cayden and Nicolo who work at Mentra and have been doing some amazing work across the AR ecosystem. They have been part of YC and raised money to pursue making an open-source platform for AR development.
My first step was to clone the 3D designs from their GitHub repo. I don't want to copy everything at the moment since I only need the 3D designs to build upon for this week:
cd 3d_design
git init #initializes the directory for cloning files from the repo
git remote add origin git@github.com:Mentra-Community/OpenSourceSmartGlasses.git #setting it up using the ssh key I already have initialized on my github, check week 01's tutorial
git config core.sparseCheckout true #enables us to only clone a specific subset of files
echo "mechanical/*" >> .git/info/sparse-checkout #specify the folder to clone
git pull origin main #pull the files
I opened the files in Fusion 360:

What I wanted to do to practice 3D design was to start designing it myself in my own file. So we start by having a simple sketch of the glasses frame. I could have a starting point by importing the design from Inkscape as an SVG and editing it to fit the needs of the actual design. I also ensured the right naming convention:

After that, I unfixed the lines of the sketch so I could freely edit them and their sizes, but I faced the problem that all the constraints were greyed out:

I faced a lot of errors trying to fix this issue, so I decided to sketch it from scratch in Fusion 360 since the imported lines are considered curves, not actual lines. I ended up using that sketch as a reference and redrew it in Fusion.
Here are the steps I followed:
Step 1: Created a sketch for the reference dimensions, meaning the upper width and the side lengths that connect with the hinges. I created two parameters here: frame_width (135 mm) and frame_sides (frame_width/11)

Step 2: Imported the SVG design from my logo, since I wanted the glasses to still represent the logo while being in a shape that suits my face

Step 3: Traced the original design, making sense of the dimensions so all the lines turn white, which makes it easier to edit and work on the model in the future. Tools used: mirror, project, coincident, horizontal alignment, control point spline, offset to create a general guide for the lenses, auto_constraint, and mirrored the design from the left to the right side.

Step 4: Created a curved surface in a construction mode rectangle that enclosed the glasses, and used the control point spline to create the curvature I wanted

Step 5: Created a 3D surface from that curve and extruded it:

Step 6: Projected the glasses design onto the curved surface:

Step 7: Used the patch tool on the 3D surface:

Step 8: Trimmed the design to cut out the lenses:

Step 9: Thickened the frames:

3D video of the design:
Compressing Image and Video Files
I used ImageMagick to handle the conversion and compression of all the images this week. First, I converted all 24 PNG screenshots to JPG format using:
convert input.png output.jpg
Then I compressed all the converted JPGs in one go using mogrify, setting the quality to 50% and resizing to a max of 1000 pixels. The original PNGs totaled about 21 MB and after compression the JPGs came down to about 1.07 MB:
mogrify -quality 50% -resize 1000 *.jpg
For the video, I used ffmpeg to compress the screen recording from the original 53 MB MOV file down to 1.82 MB. I used H.264 encoding with a variable bitrate at CRF 25, scaled to 1080p, with MP3 audio:
ffmpeg -i input_video.mov -vcodec libx264 -crf 25 -preset medium -vf scale=-2:1080 -acodec libmp3lame -q:a 4 -ar 48000 -ac 2 output_video.mp4
Compression Prompt
Here is the prompt I used with Claude Code to handle the image and video compression process:
"I have a week of Fab Academy documentation with images exported as PNGs and a screen recording MOV file. Please do the following:
- Convert all the PNG images to JPG format using ImageMagick's convert command
- Name them in order of appearance as week_XX_01.jpg, week_XX_02.jpg, etc.
- Compress all the converted JPGs using mogrify with quality 50% and resize to 1000px max:
mogrify -quality 50% -resize 1000 *.jpg - Compress the screen recording MOV file using ffmpeg with H.264 variable bitrate encoding, CRF 25, scaled to 1080p, with MP3 audio:
ffmpeg -i input.mov -vcodec libx264 -crf 25 -preset medium -vf scale=-2:1080 -acodec libmp3lame -q:a 4 -ar 48000 -ac 2 output.mp4 - Move all compressed files to the docs/images/ folder
- Update the markdown file with the correct file paths and names"
Original Design Files
Logo SVG file:
Glasses front design only:
This week's checklist
- Modeled experimental objects/part of a possible final project in 2D and/or 3D software
- Shown how you did it with words/images/screenshots
- Documented how you compressed your image and video files
- Included your original design files