Intern VR Game

The RazorX2 summer interns spent all summer creating an awesome VR game using Unity, Blender, and the HTC Vive which they named, DefenderX2.

Now, we are making the game publicly available to anyone who would like to try it for free!  Also, the source code is available on GitHub to view or extend the game to your own design.

DefenderX2 – VR Game Download Executable

Source Code on GibHub

How to make a monogram cube in OpenSCAD

What is OpenSCAD?

OpenSCAD is software to design 3D object with the power of a programming language.

What is a Monogram Cube?

A cube with a letter on each axis. I will be showing you 3 different forms of monogram cubes.

Getting started.

Install OpenScad from http://www.openscad.org/

Let’s start with one letter.

text("R", size=30, font="Calibri", halign="center", valign="center");

Flat Letter

But a flat letter is not very interesting, so let’s turn it into a 3d object.

linear_extrude(height=30, convexity=4) {
  text("R", size=30, font="Calibri", halign="center", valign="center");
}

3D Letter

Now we need to center it on the z axis so it can be easily rotated.

translate([0,0,-15]) {
  linear_extrude(height=30, convexity=4) {
    text("R", size=30, font="Calibri", halign="center", valign="center");
  }
}

Let’s now scale the letter on the X axis so it is roughly cube shaped.

scale([1.4,1,1]) {
  translate([0,0,-15]) {
    linear_extrude(height=30, convexity=4) {
      text("R", size=30, font="Calibri", halign="center", valign="center");
    }
  }
}

3D Scaled Letter

At this point, there’s obviously a lot of magic numbers, so let’s make use of the variables and modules.

monogram = "RX2";
font = "Calibri";
size = 30;

LetterBlock(monogram[0]);
module LetterBlock(letter) {
  scale([1.4,1,1]) {
    translate([0,0,-size/2]) {
      line_extrude(height=size, convexity=4) {
        text(letter, size=size, font=font, halign="center", valign="center");
      }
    }
  }
}

Now we can call the module 3 times and translate the letters in space.

Word();
module Word() {
  LetterBlock(monogram[0]);
  translate([size,0,0]) LetterBlock(monogram[1]);
  translate([size*2,0,0]) LetterBlock(monogram[2]);
}

Three Letters

But what we really want is all 3 letters centered on the origin and rotated to the X, Y, and Z axis. We also need to union the letters together into one object.

Union();
module Union() {
  union() {
    LetterBlock(monogram[0]);
    rotate([90,0,0]) LetterBlock(monogram[1]);
    rotate([90, 0, 90]) LetterBlock(monogram[2]);
  }
}

Unioned Letters

Another way to do a monogram cube is with negative letters. For that we need to subtract the letters from a hollow cube. Also, note that the cube needs to be slightly smaller than the letters in order to get clean edges.

Difference();
module Difference() {
  difference() {
    cube([size*.99,size*.99,size*.99], true);
    cube([size*.75,size*.75,size*.75], true);
    LetterBlock(monogram[0]);
    rotate([90,0,0]) LetterBlock(monogram[1]);
    rotate([90, 0, 90]) LetterBlock(monogram[2]);
  }
}

Hollow Cube

This looks great, but it can’t be 3D printed due to the center of the R, this could be fixed by removing it, or by creating small supports. I’ll leave that as an exercise for the reader.

The last form of monogram cube is made by intersecting the 3 letters. In order to do this we need to change the font to Impact and make use of the intersect function.

font = 'Impact';
Intersection();
module Intersection() {
  intersection() {
    LetterBlock(monogram[0]);
    rotate([90,0,0]) LetterBlock(monogram[1]);
    rotate([90, 0, 90]) LetterBlock(monogram[2]);
  }
}
Intersection Letters from Corner
Intersection Letters from Top
Intersection Letters from Front
Intersection Letters from Right

Now we can export to a STL file for printing.

All files related to this post can be found at Thingiverse

RazorX2 Tech Talk: An introduction to Amazon web services (AWS)!

Tech Talk Flyer

Dear RazorX2 Team, Colleagues, and Friends!

It is our pleasure to invite you to our first RAZORX2 TECH TALK:  AN INTRODUCTION TO AMAZON WEB SERVICES (AWS)!

Thursday, March 31st from 4-6PM at RazorX2 

1930 Isaac Newton Square, #205 Reston, VA 20190

We are honored to welcome RazorX2’er and AWS Trained Administator, Jack Durham, to introduce us to the available services within AWS.

  • Get started using AWS
  • Learn key concepts & terminology
  • See live demonstrations
  • Food & drinks will be provided
  • All are invited to attend (bring your friends)
  • Free admission
  • Free Wi-Fi available

Please RSVP here

The Technologists of Tomorrow

I had the pleasure of attending the Thomas Jefferson High School internship fair on Wed Jan 20, in Alexandria, VA. To be honest, I wasn’t sure what to expect. Yes, they’re smart. Yes, they’re technical. Yes, they’re ambitious. But let’s face it, they’re just kids.

But as the afternoon progressed, my prejudices of “they’re just kids” quickly faded. The beauty of those students was not in their academic and extra-curricular achievements (although, those were beyond impressive!) but instead, the reality that they were so much more than just their academic successes. I had artful and insightful conversations about Snapchat, artificial intelligence, and technology in research. It was their gift of youthful enthusiasm and curiosity, not yet polluted by impossible deadlines and underfunded projects, that made me realize, the technologists of tomorrow are here, today.

I was totally blown away by their eagerness. It (almost) sounded silly to me as I was explaining it to my CTO who asked about the fair. I bumbled with descriptions like, “energetic, ambitious, joyful … (joyful? Yes, joyful)!” I ultimately summed it up with, “I can’t quite put my finger on it but it was soooo cool to be around them.” I mean, was it really just their optimistic youth?, inexperience in life outside their parents’ homes?, an existence without financial pressures of a car payment and mortgage? I’m guessing all of the above, plus the adorable-ness (yep, you read that right, I said adorable-ness) of first loves, wearing a new suit at school, and prepping a resume for the first time. Aww …

Every student I met was genuinely impressed with our internship program and asked what they would learn from the experience. To be honest, I’m not sure if they were truly interested in RazorX2 or not (Haha. No hard feelings. I was a teenager once too). But I picked up, almost immediately, that to them, RazorX2 was a stepping stone to revealing what they liked or maybe even didn’t like. I had no problem with that. In fact, I appreciated the honesty and simplicity of our interactions and conversations.

At the end of the day, despite “being on the other side of the table,” I left feeling like I was the one who gained from the experience. It just goes to show that anybody can influence our views of technology and its applications. Despite one’s years of professional experience, I learned through the eyes of teenagers, that we are all technologists of tomorrow.

I am very excited about the prospects of my internship candidates this summer. Given the students I met last Wed, I know this summer’s exchange will go beyond just the technical. It will be energetic, ambitious, and joyful. How cool is that?! Very.