Hack-A-Day, Day 13: Blueprint Maker

Hack-A-Day is a challenge to try and finish 30 projects in 30 days in November.

Today I tried to write a tool to make a floorplan. You can try it here. As usual the source code is on github.

This was an ambitious project for one day, and I didn’t finish everything I wanted. My original goal was to support

  • drawing and erasing rectangles (done)
  • adding, editing, deleting, and moving text labels (not done)
  • adding, deleting, and moving icons (mostly not done)
  • autosave (done)
  • undo support (done)
  • zoom and pan (not done)
  • sharing finished projects (stretch goal, not done)

What I did do was pleasantly high-quality, and I made pretty good progress.

Hack-A-Day, Day 06: Raytracing Redux (realtime video)

Today’s update is a short one. I ported my raytracer from day 02, to the Nvidia GPU: ha3k-06-raytracer

The visuals are pretty much the same. Incidentally I discovered the striations on the ground disappear if we increase the floating point precision.

Render on the GPU is 30x faster (0.05 fps -> 3 fps). That’s still not very fast.

I didn’t get video working yesterday, or anything else visually new. I will call this one a failure overall, because I have nothing interesting to show off. I learned stuff and made progress though, so it’s not so bad.

Here’s a working video!

Hack-A-Day, Day 04: Lashed Table

Lashed furniture is made using sticks and rope or twine. Today’s project was to make one out of bamboo and brown paracord. The frame is shown–imagine boards or many pieces of bamboo forming a top.

Hello to the young lady who decided to pose and join in the photo!

We found this little $5 tool to be incredibly good for cutting bamboo. It’s designed for almost the same thing, cutting metal pipes.

It wasn’t bad for a first try. That said, we decided the top wasn’t flat enough to give a good finish, so the whole thing is going to be burned at the next bonfire.

Hack-A-Day, Day 02: Raytracing

Today I wrote a simple raytracer. A raytracer is a very simple way to draw excellent graphics. For each pixel, it follows an imaginary “line” out from the viewer through that pixel into the computer world. Then it colors the pixel based on what the line hits. Unfortunately, it also takes a lot of computing power.

Mine is based on the explanation (and code) from “Ray Tracing in One Weekend“, and the code from “My Very First Raytracer“.

Matte spheres in different shades of grey. The blue in the spheres is reflected from the sky.

The motivation for this project was to learn how to make things run faster on a graphics card. I quickly realized (before I wrote a line of code) that I’d need the basic raytracer to be its own project. Having it run faster will have to be a job for another day!

A final demo scene, showing off reflectivity and metal surfaces.
Note the pincushion distortion of the overall render, and striations on the ground.