Adrian Herbez Rotating Header Image

Throwback: Virtual Graffiti

screen-shot-2016-09-14-at-12-45-38-pmThis was an experiment I worked on back when I was at Sony. While our team was working on the Playground space, one of my coworkers came across GML: Graffiti Markup Language. That seemed like an opportunity to me, so I implemented a minigame that would render a given GML file onto a screen within Home.

The implementation was fairly simple- just drew dots as found in the GML file, with lines to connect them. GML files also include time information, which makes it possible to have the result feel like it’s actually being drawn as the rate of drawing speeds up/slows down in response to the shapes being created.

See below for video of it in action.

PKP: Cora Aldencamp’s journal

book_screenshotA while back, I created a second Puzzle Keeper’s mystery for my girlfriend’s niece. A full rundown of the puzzle can be seen here.

As I work towards making the Puzzle Keepers something that can be accessed by everyone (not just the immediate nieces and nephews the puzzles are made for), I’m working towards making more of the components digital. As such, I’ve created a version of Cora’s lost journal that can be read online. Clicking on the page will flip the pages of the book back or forwards.

Check it out here, and be sure to be on the lookout for the secret message hidden in its contents.

Cartesian Grid Puzzle Maker, v2

After getting some feedback from my friend, I’ve made some changes to the Cartesian grid puzzle maker tool from my last post, including:

  • larger text for the questions
  • randomized ordering of questions (to make each sheet different)
  • prevention of answers being placed on either the X or Y axis (for greater readability)
  • better positioning of controls and image (the canvas no longer moves down as questions are added)

To check out the new version, head here.

Cartesian Grid Puzzle Maker

Interface and results for a cartesian puzzle maker.

Interface and results for a cartesian puzzle maker.


While on vacation in New Orleans, I was talking to a good friend of mine who happens to be a grade school teacher. She was saying how she wanted to make a fun activity for her incoming 5th graders that would:

  • Allow her to use information about the students collected via surveys, so they could get to know each other
  • Introduce them to the concept of X-Y plotting on a Cartesian grid

We ended up talking about a worksheet that would present students with a list of questions, each with a coordinate, and a grid with various answers plotted. To find the correct answer, students have to use the coordinates to find the correct dot, and then read the associated word or phrase.

Later that night, back at my hotel room, I threw together a quick app that allows the user to add question and answer pairs, then generates an image with each answer plotted at a random location, and each question listed below the graph with the corresponding x,y coordinate pair. The user can also add a comma-separated list of extra answers to make things a bit more interesting.

Once all of the question/answer pairs have been entered, along with any extra answers, the controls can be toggled, allowing the user to print the page to get a worksheet suitable for classroom use. The “make image” button can be clicked multiple times to re-randomize the positions and coordinates, either to improve results or to generate different worksheets for each student.

Everything is implemented via javascript, with a 2d canvas for the output and simple DOM manipulation for the questions. There are definitely a few things that would make it better, such as saving as an actual image (rather than relying on printing the page), as well as some refinements to the UI. However, I wanted to post this version anyways, as it’s usable as-is, and because part of my reason for building it was to challenge myself to build a useful tool in a short timeframe (total time to execute was about three hours).

The final result ends up looking like the following image, and if you’d like to play with it yourself, head here.

gridpuzz_result

Unlimited Adventures (working title)- first steps

13817206_10157131898195632_342649846_n

13816931_10157131898995632_879846083_n

For years now, I’ve wanted to create an open-ended system for building playsets suitable for use with 3.75″ / 1:18 scale action figures. I’ve finally started in on it, with the results seen here.

The system is based on a few simple components:

  • base pieces that sit on a table or other flat surface
  • uprights
  • horizontal girders
  • floor panels that sit on top of horizontal pieces
  • wall panels that clip onto uprights

What you see here is the first iteration, with the lengths of both uprights and girders at about half length (for quicker printing during prototyping). Eventually, I’ll be creating a wide range of wall and floor types for different decor (medieval, scifi, etc etc), allowing users to mix-and-match. I want the system to be able to support creating mash-ups between genres, and to allow for both typical military/adventure playsets, dollhouses, and things that are somewhere in between (like a Victorian house with a mad science lab in the basement). I’ll also be creating a ton of add-ons, with many of them including interactive features.

There will definitely be a lot more about the system and the add-ons posted here as I make them, so watch this space!

Pocket Rainbows!

pocketRainbowSo, I finally got a 3d printer (the excellent Monoprice Maker Select), and I’ve had it running more or less non-stop. One of the first things I did was to revisit a project from roughly 15 years ago- a kind of mechanical toy that causes a rainbow to appear out of (almost) nowhere.

The original version was made out of cardboard, but I’ve always thought it would be great to make one that was both smaller, and made of more durable materials. I designed the model using Fusion360, and I’m really happy with the results.

Here’s what it looks like in action:

Viewing STLs in Unreal

stlUnrealI recently made a small demo that reads an STL file from the always awesome thingiverse and creates a model in Unreal. Note that it reads the file directly from Thingiverse, not from the local drive.

At present, it’s only working with simple models- more R&D will be required to get it working with more complex models.

The model in the screenshot is the awesome “Low Poly Fox” by Thingiverse user slavikk.

Stephenson Security

ssc_envelop I’m currently teaching an introduction to C++ for game programming at the Academy of Art University. Each week, I give the students an assignment to complete, but I wanted to do something extra fun for the midterm.

So instead of just a straight assignment, I set my students up as recent recruits to “Stephenson Security Consultants”, a shadowy organization that offers its services to the highest bidder.

ssc_contents

Each student received a packet containing details on 4 “missions” to solve via C++, plus two bonus questions. If you’d like to try your hand at the problems, head here and type “download” into the prompt.

PKP: The lost journal of Cora Aldencamp

I recently made a second PKP puzzle for my girlfriend’s niece. The puzzle revolves around a box that once belonged to Cora Aldencamp, a former PKP member. The box contains a series of stamps that can be used to uncover the code needed to unlock a secondary (virtual) box.

Once the correct code is entered, the user can print out a PDF that can be cut and assembled into Cora’s lost journal, which contains a further hidden message.

To see a full album of the build process, head here.
To try the web-based component (implemented in WebGL via Three.js), head here.
If you want to make your own copy of Cora’s journal, grab the PDF here.

Spinbox (5 year anniversary gift)

I recently celebrated my five-year anniversary with my girlfriend, and I wanted to make something special to give her. The result was a kind of mechanical box… object.

Opening the box reveals a platform with five holes evenly spaced around the center. If you hold the box and rotate the bottom, two things happen:

  1. The platform lowers, revealing five heart-shaped beads on individual axels
  2. Each heart rotates independently around its vertical axis

At first, I tried making all of the parts using FreeCAD, which I really want to like, but it proved to be far too unstable for me to get vary far. Progress stalled for a bit, but then I decided to just do everything in OpenSCAD instead, which proved much more straightforward. This is definitely the most complex thing I’ve tried with OpenSCAD so far, and I’m happy to say that it worked out great.

To see the box in action, check out the youtube video.
You can also view an album of the build and finishing process

Finally, for the more technically inclined, all the OpenSCAD code is up on github