David Young
  • Home
  • About
  • Contact
  • Personal Projects
    • Computer Science >
      • Computer Vision >
        • 2016 - Homography w/ RANSAC
        • 2016 - Fundamental Matrix & Triangulation
        • 2016 - Laplacian Blob Detector
        • 2016 - Photometric Stereo: Shape From Shading
        • 2015 - Optical Character Recognition w/ OpenCV and Deep Learning
        • 2015 - Feature Detection
        • 2015 - Feature Description
        • 2015 - Feature Matching
        • 2015 - Panoramas (Alignment, Stitching, Blending)
        • 2015 - Facial Detection & Recognition
        • 2015 - Single View Modeling
      • Artificial Intelligence >
        • 2019 - Talk: How Neural Networks See the World
        • 2018 - Generating Text and Poetry
        • 2015 - Optical Character Recognition w/ OpenCV and Deep Learning
        • 2015 - Constraint Satisfaction Problems
        • 2015 - Adversarial Search
        • 2015 - Path Planning (Mazes + Pacman)
        • 2015 - Digit Classification (Bayes)
        • 2015 - Text Document Classification (Bayes)
        • 2015 - Multi-Class Perceptrons
        • 2015 - Markov Decision Processes & Reinforcement Q-Learning
        • 2015 - Simulating Neuronal Learning during Brain-Machine Interface
      • Machine Learning >
        • 2016 - Naive Bayes Classifiers in R
        • 2016 - Stochastic Gradient Descent (SVM in R)
        • 2016 - Comparing Classifiers in R
        • 2016 - Visualize High Dim Data: Blob Analysis + PCA
        • 2016 - Image Segmentation w/ EM
        • 2016 - Regression Kernel Smoothing
        • 2016 - Multinomial Regression on Wide Datasets
      • Robotics >
        • 2017 - 3dof Parallel Motion Simulator
        • 2015 - Designing a Hybrid Controller
        • 2015 - Controlling Pendubot with a Kinect
      • Computer Architecture >
        • 2016 - Architecture Support for Accelerator Rich CMPs
        • 2014 - Weighted Vector Addition with Cuda Framework
        • 2014 - Parallel Reduction with Cuda Framework
        • 2014 - Designing a Pipelined CPU
        • 2014 - Intel SSE Intrinsics Applications in Rudimetary Matrix Algorithms
        • 2014 - LIFC to MIPS Compiler and Assembler
      • Web Development >
        • 2014 - Javascript Calendar
        • 2014 - Multi-Room Chat Server
      • Graphics >
        • 2015 - Basic Animation w/ WebGL
        • 2015 - Diamond Square Terrain Generator
        • 2015 - Flight Simulator w/ WebGL
        • 2015 - Multi-Program Texture Mapping WebGL
      • Software >
        • 2015 - Consumer Grade Gaze Pattern Recognition Software
        • 2015 -Test History Jenkins Plugin
      • Other >
        • 2014 - Hashtable for Genomic DNA Sequences
        • 2014 - Closest Pair of Points
    • Virtual Reality, Game Design, & Animation >
      • 2019 - Interactive Music Visualization
      • 2016 - Visualizing Runtime Flowpath in VR
      • 2016 - Fiducial Marker Tracking for Augmented Reality
      • 2015 - Experimenting with PhysX & APEX Destruction
      • 2015 - Rigging Tank Treads using MEL in Maya
      • 2015 - Automated Simulation Teddy Bear Bin
      • 2014 - Networked Multiplayer Game of Set
      • 2014 - Asymmetrical Multiplayer Destruction
      • 2016 - Tracking & Depth Perception
      • 2014 - 8 Week Game Design (Cave Survival)
      • 2015 - Experimenting with Nvidia FLEX
    • Computers >
      • Custom and Watercooled PCs
      • Component Reviews
      • Installation Guides
    • Quantitative Physiology >
      • Computational >
        • 2015 - Modelling Neurons & Action Potentials
        • 2015 - Simulating Neuronal Learning during Brain-Machine Interface
        • 2014 - Imaging: Rabbit Optical Mapping
        • 2014 - Simulating Electrical Stimulation w/ Comsol
        • 2014 - Ion Channels
        • 2013 - Designing Filters to Simulate Olfactory Sensation
        • 2014 - CardioVascular Mechanics
        • 2014 - Renal
        • 2013 - Principal Component Analysis & Singlar Value Decomposition
        • 2013 - 3D Printed Frog Muscle Holder
      • Physical >
        • 2013 - Biomedical Signal Acquisition
        • 2013 - Electrooculogram
        • 2013 - Compound Action Potential in Frog Sciatic Nerve
        • 2013 - Contractile Properties of Frog Skeletal Muscle
        • 2013 - Locust Olfaction
        • 2014 - Voltage Clamp
        • 2013 - Dive Response
        • 2014 - Frog Heart Muscle
        • 2013 - Ultrasound
        • 2014 - Biological Signal Conditioning
        • 2014 - EKG, Vector Cardiograms & Pulse Wave Velocity
    • Electrical Projects >
      • Self Balancing Robot Pendulum
      • Custom Beer Pong Tables
      • 4-axis Robotic Arm
      • Modified Electric MiniBike
      • Secret Knock Detecting Automatic Door Opener
      • Car Audio
      • Tree-House Wiring
      • Laser Harp
    • Auto & Mechanical Projects >
      • Single Turbo Lexus SC300
      • Track Day Mx-5
      • Karting
      • Racing Simulator Rig
      • 50cc Barbie Jeep
    • Random Other Projects >
      • Talk: Embodied Cognition
      • Bathymetry Coffee Table
      • Not your average Tree House
      • Pneumatic Tennis Ball Cannon
  • Experience
    • Resume
    • Work Experience
    • Programming Experience
    • Research Experience
    • Service Work
  • Education
  • Hobbies
    • Motorsports
    • Art
    • Music
    • Gaming
    • Dancing

Bathymetry Coffee Table
(2019)


I've been intrigued by furniture design lately, and decided to take a stab at making a custom coffee table based on bathymetry data of the San Francisco bay. ​Build log is below!

I Couldn't Think of a "polished" Title  - September 2020

Then came the sanding... and a lot of it. I used a combination of wet and dry sanding in passes spanning 120 to 3000 grit, before a polish to make the acrylic really shine. This process took the better part of a day, and by the end I couldn't unlock my smart phone as I'd sanded my finger prints off... ha!

Finally, a Leg Up - August 2020

Legs were an afterthought. To mount them in a sturdy fashion, I decided to create a thick inner platform out of 7/8" ply, resting on sanded and leveled risers which were epoxy welded to the concrete. The legs themselves are then mounted to the thick plywood with hardened steel bolts and a decent set of washers/lock nuts. While I didn't like the mounting of the legs being an afterthought in the design, they're incredibly strong. The table is a ROCK and moving it has become quite an ordeal :)

Small Victories w/ Family and Friends - July 2020

Taking the mold apart was an all hands affair. My partner Anna managed to snag a timelapse video as well. Everything went smoothly, which made the long mold making process worth it. The table still requires a bit of clean up and detail work... but overall I'm elated with how it turned out! 

Concrete Evidence of Success - July 2020

We actually poured the concrete. It finally happened!!! The internal mold worked incredibly well!

​Thinking "inside" Another Box - June 2020

The original MDF box, originally build to house the laser cut acrylic, was destroyed during the intermediate mold. We created a new box for the concrete mold, custom fit to the final acrylic pour.
To further simplify the actual pouring of concrete, we also constructed an internal mold that hovers an inch off the surface. This should keep the concrete nicely in the side channels without having to form it by hand.
Lastly, we cut some large pieces of Styrofoam to fill larger empty spaces of the mold. This should keep the concrete pour to ~1" thick overtop the complex surface.. hopefully coming in at ~150-200lb instead of ~500lbs that would be required to submerge everything w/ concrete alone. We also cut grooves in the Styrofoam to serve as support channels for extra strength.

​A Roaring Pouring Success - May 2020

I let the acrylic dry for 2 days, just to be safe. Removing the outer hard shell was difficult around the ocean where the resin overheated and expanded slightly. But once the shell was off, removing the silicone mold was a breeze and INCREDIBLY satisfying. I'm eager to work with this material again. Overall I'm very pleased with how the resin turned out :)

When it Rains it Pours - May 2020

Well... Covid hit, and surprisingly work picked up! While I'm terrifically fortunate to be busy, I all but forgot the table in the early months of 2020. Spring came, and I figured it was time to revisit the project. Eager to see progress, I rushed the pour... resulting in a few bubbles and blemishes I'm choosing to call "features" :)    

To start the process I leveled the mold in preparation for the pour. This required placing weights on various corners of the mold because it had warped while in storage. The mixing and application of resin was broken into 3 separate pours, each bigger than the last. Volumes for each pour were calculated from the CAD model. I used a simple 2 part resin mix called "NuClear UV resistant Epoxy Resin​". Despite the resin being made for thick pours, the resin cured with blemishes in the deeper sections.
  • Pour #1
    • Layers: 7, 6, 5
    • Volume: 0.65 qt
  • Pour #2
    • Layers :4, 3
    • Volume: 1.84 qt
  • Pour #3
    • Layers 2, 1
    • Volume: 5.00 qt

Breaking the Mold - January 2019

The new plan is to make a silicone mold of the acrylic and then cast a single piece of resin. That way, concrete can be poured around the resin, which will act as a inlay in the final table.
 
In order to make a mold, the acrylic needed to be exposed for the silicone. Two sides of the MDF box were carefully removed in case re-assembly turned out to be a viable option.
Picture
Considering the volume of the mold, a brush on silicone was an inexpensive approach as it saved on material cost. I ended up using a SIlicone rubber material called EZ-Brush from "Smooth On". The product is meant to create vacuum bag molds and even a thin layer yields an incredibly strong mold. The material was brushed on in 4 layers.
Once the silicone rubber had cured, a thin layer of Smooth On's Plasti-Paste epoxy was added to created a rigid mother mold.
Working with these products was an absolute treat. I could not be happier with the results and I am sure I'll approach future projects differently knowing complex molds are this accessible.

Test Pour Went Poorly - January 2019

The intricacy of the mold raised concerns about the feasibility of separating the acrylic from the concrete. So I decided to perform a test pour by first creating a small tile with an intricate acrylic inlay. I then masked the MDF board.
As an extra pre-caution, I added a silicon release barrier over the acrylic (aerosol application).
I finished the mold box and poured the concrete.
Once the concrete dried, the mold was broken apart and it was clear that the acrylic could not be separated without destroying the concrete finish.
This was incredibly disappointing, but also somewhat expected. I'm just glad to have verified before pouring the entire table. A different strategy is already in motion :)

Securing the Mold and the Materials - December, 2019

The layers were aligned using pins through the pre-cut alignment holes, and secured together using a tiny bit of super glue. The mold is incredibly secure, but overwhelmingly intricate. This raises concerns around the feasibility of separating the acrylic from the concrete. So a test pour is in order.
Additionally, the materials for the concrete pour were acquired. Moving the bags of concrete made me realize this table is going to be HEAVY!
  • Surecrete PreCast x 5
  • Additive (5 gallon)
  • Sealer
Picture

Resizing the Table - December, 2019

After building the frame of the mold, the size of the table just seemed too large (48x42"). I decided to shorten the dimensions a bit (48x36"). Luckily this only took ~5min thanks to the previous work I'd done to parameterize the CAD model. New renders below!
Luckily it was easy to adjust the dimensions. I simply inserted and reinforced a new wall in the existing mold.

Building the Concrete Mold - December, 2019

The next step was building the concrete mold. I started by creating an MDF box.
I created rounded inserts for the curved corners of the table. I used a thin MDF skin and wet the back of the wood to make it more pliable.
The frame of the mold turned out pretty well.

Laser Cut Acrylic - November, 2019

Laser cutting the acrylic went smoothly and the parts look beautiful!
Picture
I was sure to add some guide-holes to the templates before laser cutting which should help align the pieces.
Picture

Creating Templates for Laser Cutter - November, 2019

Recent travel has kept me from working on the table, but I did manage to create some templates for the laser cutting machine. To save material and cost, I "nested" (efficiently arranged) all the parts to be cut. Jumping between different programs, I was stunned to find poor support and standardization for mechanical drawing formats. A few programs even failed to detect units in a clean .dxf file, and many others preferred SVGs. I would have expected a much cleaner and more efficient workflow for something so common. Nevertheless, I was able to make all parts fit within a half sheet of acrylic, without introducing too many subdivisions. While a more efficient layout could have been achieved, it would mean splitting more pieces and working out a method for align them at mold time. I settled on a nice balance.
Picture
While creating the templates I also added some small holes to help align the layered sheets later on.

More CAD - October, 2019


CAD modeling - September, 2019

Picture

Generating contour maps from bathymetry data - August, 2019

I want this piece to be engaging, and invite curiosity. And if someone stares into the resin, I'd like their curiosity to be rewarded with actual information about the shape of the bay floor. So rather than freehand this piece, I'll leverage actual scan data. I turned to historic bathymetry data from NOAA.

The first obstacle was generating quantized depth contours that I could import into a CAD program.

​I started by writing some software to accomplish the following...
  • Ingest NOAA data
  • Visualize depth maps
  • Segment depth maps into clusters and visualize
  • Quantize depth maps into discrete sections
I have provided all my source code here: github.com/dcyoung/coffee-table
Picture
Picture
My code produces quantized depth maps in the form of colored images. I still needed to convert these to individual binary maps (one for each depth contour) which could be used as templates for CAD. While it wouldn't be difficult to add to the code, I simply used photo editing software to split apart the quantized depth map image and create binary (black & white) maps for each depth. Finally, I exported these binary templates as SVGs (scalable vector graphics), which made the CAD import a lot easier.

Shown below are the produced binary maps for depths 1, 2 and 3.
Picture
Picture
Picture

Initial design - August, 2019

The idea for this table started with a strong desire to experiment with pouring epoxy/resin. Most of the existing resin pour projects I've seen are "river" tables, where resin is poured into a single channel between two pieces of wood. While I find these tables intriguing, I wanted the subject of the pour to be data driven. I decided I'd do a pour outlining the SF bay! Additionally, I started planning around concrete instead of wood, as it should better match my industrial loft.
Proudly powered by Weebly