Who I am and what I'm doing

my pic

My name is Craig Brown and I am currently entering my senior year at The George Washington University in Washington, DC. I am pursuing two majors in Computer Science (with a Digital Media focus) and Economics and expecting to graduate in May 2012. Feel free to browse through my personal web site, or send me an e-mail at cbrown16@gwmail.gwu.edu.

My faculty mentor for this summer is Professor Amy Hurst. She is a member of the department of Information Systems, which is in the College of Engineering and Information Technology at UMBC. Her research focuses on assistive technology and human computer interaction (HCI). Her website can be found here.

Weekly Blog

Contained below are weekly summaries of my summer research expereince

Week 10 Review

This week I concluded my summer reasearch expereince here at UMBC. My final research activities consisted of a few things. As we are plannign to continue work on this project past the end of the experience, I needed to make sure that all of the code I'd been writing (tentatively refered to as "Viztouch") was up an ru8nnig on the Mac in the prototyping lab. This meant organizing the folders and explaining the logical flow to Amy. I also added a few additional features to program, most notably, a simple user interface, the ability to print both single quandratn and full graphs, and more. I also ran tests to make sure that all of this functionality was correctly implemented.

I also went down to Arlington to to conduct another interview. I got lots of great design feedback here, which included requests to lower the height of the grid, as well as enable the user to have the optino to print letters and numbers in both braille nad alphanumeric characters. This fucntionality will likely be added int he few weeks following the formal end of my DREU experience.

I spoke with Amy in order to layout the structure of our final research paper, which we hope to have published for the TEI conferende in Kingston, Ontario, CN. With tthe deadline for submissions set for September 1st, a large part of the post DREU work we do will be writing and editing this paper for submission.

On a final note, all of us who frequented the PAD lab went our for a last dinner in the harbour at one of the restauraunts in Little Italy. And with a few last goodbyes, thus concluded my summer 2011 research expereince at UMBC.


Posted on 29 July 2011

Week 9 Review

I created a number of different types of graphs, trying to capture what the full capabilities of an early stage product might be able to do. this included data set plots, cubic functions, quadratic functions, linear functions, and logarithmic functions. Perhaps the most promising (and depressing) was a graph of the unemployment rate over the last 3.5 years, month by month, up to last month. This was going to be a challenge because this graph had a particularly large number of data points (46 points for 46 months). I realized that this was going to cause a significant loss in resolution, so I decreased the line thickness in order to preserve the integrity of the print. I also printed this quadrant with my puzzle piece pattern from before, and noticed that there were a few weaknesses in this sort of design. Unfortunately, the limitations of the makerbot seem to cause the edges of a print to curl up when it needs to print a lot of detail there. This means the the quality of the puzzle piece connectors ends up being quite unpredictable and imprecise. Not the best design if you need to print a lot of these things consistently. So, I spent some time simplifying this design to work without the connectors.

I went deeper into finishing up the software end of this as well, which now includes a user interface (rather than just a command line call) that allows you to choose whether to prints a graph or a function, the size of the graph (1 quadrant or 2), the actual function it self, as well a location to save the printable STL file. I still need to polish of some work on the tail end of the script which actually handles the OpenSCAD side.

I did some more research this week of some of the related technology which is currently out there in the HCI research space. there is nothing quite exactly what we are doing, but there are definitely some interesting projects which Ill be able to include in the related works section of my final paper.

Posted on 25 July 2011

Week 8 Review

I constructed a diagram of the algorithmic pipeline for the project this week. It will likely be one of a few such diagrams to appear in the final paper, as well as the poster. I also spent a lot of time thinking about how I might design each quadrant of a full graph (including the negative x and y directions), so that four separate quadrants could be put together so simulate the full experience. Ideally, I would simply print the 4 quadrants to a single sheet of plastic, but I am limited in doing so on the makerbot because the printing platform is still quite small. I considered using puzzle piece-type connectors, to snap individual pieces together as one, and got to designing these in inkscape. I also added more braille to the existing printed prototype.

Posted on 25 July 2011

Week 7 Review

Had another productive week, wherein I got to experiment with a few different approaches to prototyping my visualizations. Chiefly, I started to move away from laser cutting the graph alone, to printing it as well. The need to experiment with a printed design came mostly from the need to place the printed function within the correct orientation on the laser cut graph. As it was difficult to figure an intuitive way to do this, it seems to be much more intuitive to try a design where the graph and function could be printed together, thus allowing the function to automatically be placed at its exact location. Initial prototypes looked quite promising, and I even incorporated braille numbers to mark each coordinate on the graph. I should have both laser cut and 3D printed prototypes available for upcoming user tests.

I also completed about 95% of the scripting pipeline this week, with the path to completion looking to be now fettered mostly with extending functionality. My generic script now only prints the equation x^2, but should easily handle other simple function types, as well as simple data sets. I ran into some pretty infuriating frustrations with the inkscape technology along the way, and i will soon detail these frustrations in my thoughts section. Ill also explain some of my algorithms in use under the new algorithms section, and perhaps even upload some diagrams to help with the explanation.

As an anecdote, I also wrote up a simple guide to using the laser cutter that should help new users in the lab make responsible cuts.

Posted on 16 July 2011

Week 6 Review

This week was quite productive, as I finally started to prototype a few potential designs for my tactile coordinate space system. I started with prototyping the 2D grid itself, after deciding that it would be best to proceed on the laser cutter. After creating a few alternative designs in Inkscape, I sent those files to the laser cutter, testing them on materials such as cardboard and hardboard (some sort of hybrid wood derivative). I also experimented with other materials such as felt pieces, to see if they might add a useful dimension for blind users. I made multiple prints and had everyone in the lab test them and give me their feedback.

I also worked on advancing my progress with the designs of the tactile functions. In doing this, I sought to pay close attention to my process, as I wanted to be sure that any design I made in inkscape could be easily generalized and automated via code. This is more important for the printable functions because they are largely intended to be customizable and are more likely to be prototyped by users via 3D printer, rather than laser cut to standards by ourselves. The last point being made by 3D printer means that the inkscape designs must be in such a format that it will be easy to transfer them to OpenSCAD, where they can be transformed from 2D vector graphics to 3D STL files. I had to struggle with this a bit, as there is an intermediary conversion needed to make this leap. In moving from inkscape to OpenSCAD, I have to change my SVG files to DXF files, and then export those DXF files as STL's once in OpenSCAD. The problem is that the conversion from SVG to DXF tends to be a very loss filled conversion. I had a lot of issues where items in my SVG files would simply disappear in OpenSCAD or cause OpenSCAD itself to crash. Through lots of experimentation though, I seem to have found a way in which to work around the mess. At this point, I feel that the major hurdles have been cleared, and I've started to actually work on automating the process.

Additionally, I spoke pleasantly with the blind economist from Washington DC, and we have agreed that I will work with her on the weekends as a volunteer, in exchange for an interview and user testing sessions. Best of all, she seems to have contacts for me which should provide more relevant users to help me test my designs.

Posted on 3 July 2011

Week 5 Review

This week I seem to have devised the final scripting pipeline for the entire project this summer. In doing this, I discovered Veusz, which is a cross platform, open source plotting program that I can use to graph functions and plot data sets. The great thing about Veusz is that like Inkscape, it is written in Python, so I should be able to write a single python program that will handle the interaction between Veusz, Inkscape, and potentially OpenCAD. The addition of Veusz seems to guarantee a more streamlined development pipeline.

In addition to working with Veusz, I began prototyping some designs in Inkscape for both the tactile grid, and a few elementary functions. My idea at this point is to laser cut the grid, and print the functions. Next week i should be able to start physically prototyping designs for both in the PAD lab.

Posted on 30 June 2011

Week 4 Review

Perhaps the most major development this week was another slight change in direction for my project. Upon speaking with Amy, we decided that it would be an interesting idea to take the project a little further. In addition to developing this technology to make mathematical visualizations more accessible to the blind, I will attempt to develop a protocol for the authors of said visualizations, which in the future might require them to provide certain bits of information in order to help curate their visualizations for blind users. This may include information such as relevant equations, data sets, procedures, and color maps. This data should provide enough information for my technology to accurately reproduce the tactile and accessible version of any visualization. We also discussed what some possible conferences and events might be for me to present this research. So far we designated the UMBC undergraduate research Symposium on August 10th, and the TEI (Tangible Embedded and Embodied Interfaces) Conference taking places in February 2012 at Queen's University in Kingston, Ontario.

Additionally, we decided that it would be necessary to develop a new IRB document for this research project. I spent some time filling out the consent forms as well as the exemption form.

Posted on 21 June 2011

Week 3 Review

I was able to really focus my project this week, and I've recorded some of the details in my thoughts section. It seems that I will now start moving onto the stage where II interview a few people to glean some information work off for the next few weeks. Essentially, I will be trying to understand what the needs, concerns, and challenges are of the visually impaired, and use that information to try and hone down the focus of my research project. Amy has already highlighted a possible contact for me from the Maryland technology assistance program. Additionally, I will be trying to contact a blind economist in DC who often solicits workers on the GWU list serve, to try and peg down another relevant interview.

In addition to moving on to the next phase of my research, I have been taking a more detailed look at the openSCAD technology. I'm in the process of reviewing tutorials and experimenting with the programming language in order to gain some familiarity. I also discovered that inkscape is often scripted in python, which might provide another relevant technology for me to start exploring in order to hone the technical skills which I will need to hack together any custom software.

Posted on 13 June 2011

Week 2 Review

This entry is a long one, but contains a lot of my thoughts.....

I read a few more research papers this week, mostly pertaining to what some of the shortcomings were of the Alice Project. I also explored some interesting websites/technologies including thingverse.com, makezine.com, 3D Tin and OpenSCAD. I got to meet with a Ph.D student named Russ, and was able to have a very productive brainstorming session with him and Prof. Hurst. It seems that all of us, including my fellow DREU researcher Jess, have quite a bit of potential for collaboration this summer. I also got to "meet" the makerbot 3D printer in the lab, which was very exciting.

One of the main goals of this week was to start to narrow down my thoughts on what I want my main research project to be for this summer. As of now, I think I have an idea of what it is that I want to do, but will probably to continue to think of more alternatives if this idea in fact turns out to be infeasible. In trying to discover what it is I want to research this summer, I thought the best way to begin would be to first consider what it is that I am really passionate about. This got me to thinking about the social and cultural issues that average people struggle with, and more particularly, the application of economic thought and principles as a way for average people to understand those issues. It may seem as though I am reaching outside of the field of computing, but the reason why an HCI research project brought me back to these issues is that I strongly consider technology to be one of the best ways of communicating with average people in today's world. Indeed, the study of economics is largely intended to be a way of understanding the needs of human beings, and how to adopt policies which best allocate our natural resources for those needs. I think there are a lot of exciting possibilities for interactive data visualizations of economic concepts, which are socially relevant to different groups of people. I explain what I mean by this below.

In my study of economics, I've noticed that there is not only an incredible amount of debate over the complicated things, but that there is also a discouraging amount of fallacy over the simple things. Additionally, one thing which politically motivated pundits, reporters, and civil servants do quite successfully, is manipulate these fallacies to steer the opinions of the general public. I find this to be a great infringement on the liberties of the common man, however I also understand that the common man is quite vulnerable to this sort of manipulation, and will often unknowingly surrender his liberties to any group of people which seems to be "better educated" and similarly aligned politically. I disagree with this premise of the common man needing to surrender to the more well informed. In fact, I have great faith in the common man, and I think that a lot of the basic principles of economics, including incentives, rational decision making, and and supply and demand are very good tools to use for understanding the world when you can understand them properly. While theories on the cutting edge of economics research are well up for debate, these basic principles are not, and in fact the majority economists in world understand the basic principles of market functions to be logically correct, and mathematically demonstrable. In an ideal world, I think if poor people had a solid understanding of the basic functions of the market, perhaps they would find that less of the answers to their day to day problems rely on government policies and much more on personal responsibility and choice. I say this, and believe this, as someone who has not exactly grown up wealthy. Let me explain this thinking with an example:

I defy any person to find an economist who will doubt the basic principles of supply and demand, in which demand curves are negatively sloped, supply curves are positively sloped, and the equilibrium price is found at the point of intersection. Here is a very simple graph which illustrates his point. Let's now take this point further and use it to explain, say, the fallacy of high oil prices. People are naturally skeptical of large oil businesses, and so when uninformed, they often think that these greedy businessmen raise the prices of oil in order to exploit the common man. In reality, any business simply has to do what it must to remain profitable and avoid insolvency. This includes responding to changes in the market by adjusting their prices. So in the case of oil prices, we can understand why they are so volatile if we can understand basic supply and demand of the scarce oil market. When there is a shortage in oil supply, prices go up as a mechanism to slow down demand for oil, and keep the supply of oil from running out. The opposite happens when demand is low or supply is high. Prices will go down, as people are no longer willing to pay such a high price for the abundant commodity, as they can always get it cheaper at another gas station which knows that it can lower prices, compete for customers, and still stay profitable because there is more oil to go around.

If the average person understood this basic concept, they would understand for example, that the prices at the pump always go up over the summer simply because you have more people driving, and demand is higher. Unfortunately, when people do not understand the empirical facts about world around them, they make irrational, faith based judgements. I think understanding logic and empirical evidence can provide people with a significant amount of comfort. Perhaps it can also help them to be more rational, in understanding that the government probably does not need to step in and investigate oil companies for price gouging. It might open them to exploring the possibility that perhaps a self interested politician might actually be trying to use the concept of price gouging as a scare tactic, in order to say that he or she can do something to lower prices, and garner more votes in the next election. I am not saying that this is simply the way it is, but given the dynamics of the political market versus the dynamics of the oil market, it is highly plausible, and average people should not be unwilling to consider these sorts of things, simply because they do not understand the basic functions of the market.

And so, as a researcher in HCI, I see where the disconnect is coming from. Average people find it hard to understand economists, and have little confidence in them, especially after the recent financial crisis. But these facts are hard to understand because they often use mathematical formulas, come from the mouths of untrustworthy economists, or come from some dense article in a sophisticated business journal. I also realize that there is a serious problem of cultural relevance, as and I suspect that there are various reasons why a young, single Hispanic mother living in downtown Harlem might have trouble identifying with this material. And so I ask, how can we make this economically relevant information, culturally relevant to poorer people? Is there a more culturally relevant way to presenting it to African American's, than there is to say, Asian Americans? Would it receive better reception if it was presented within the context of a church service, rather than online at some academic website? From a computing standpoint, how best can we visualize this data and hide all of the threatening equations/long winded written explanations? How important is it for people to *interact* with these visualizations, rather than simply have them shown or animated? Perhaps I can develop a framework that will make it easier to develop interactive, socially relevant visualizations of economic principles, data, and studies.

I think there a lot of potential in this field, but I remain open to the possibility that I am attacking a straw man, and that there may be other projects which are more feasible, with a higher prospect of yielding results.

Posted on 6 June 2011

Week 1 Review

First week at UMBC! So this week has been largely a matter of settling logistical issues and getting acquainted with the campus. On Monday, Prof. Hurst, Jess and I took a tour around campus and got lunch to break some ice and get familiar with each other. Given that this summer's research will include work with human subjects, there were some legal issues that had to be dealt with to make sure that I was legally and ethically prepared to undertake human research. This was achieved by completing the IRB training and certification process; a three hour (supposedly) online training module which trains new researchers to be legally responsible.

After completing IRB certification, I then set up this website as a part of my requirements for the DREU program. It should mainly serve as an area to chart my weekly progress this summer, as well as any other interesting uses that I may find for it along the way. On Wednesday, I spoke with Prof. Hurst to go over what my summer goals would be, including what research projects I might explore. This summer I will mostly likely be working within the realm of assistive and/or educational technology with a DIY (Do-it-Yourself) focus. What this basically means, is that I will be researching better ways that we can enable people with social constraints (like physical disabilities or scarcity of resources) to solve their own problems in a manner which is both easy and economically affordable. This area poses a lot of issues, as there are problems on the end user's side (what devices or systems will be good for people to use to help themselves?) as well as issues of an infrastructure to deliver these solutions (how can we connect people with technical expertise to those who need to use this technology?).

To get familiar with the principles of user oriented computing research, I've begun to examine similar projects to better understand their design processes. This week I focused on Alice, which is a software solution that uses movie making as a vehicle for teaching young children and novices how to program. Ive read two research papers so far by Conway and Harringer. The Conway paper discusses the crucial design lessons which were learned from the early development and testing stages of Alice, during 1999 and 2000. The Harringer paper sought to explore the possibility of Alice being able to equalize student learning outcomes within the classroom. Both papers have been remarkably enlightening, and I've gathered extensive notes on both.

Posted on 31 May 2011


Listed below are a few details on my algorthmic implementations.

Algorthmic Pipeline

Here is a diagram of the final scripting pipeline for my project.

Posted on 12 July 2011


Listed below are a number of interesting links, pictures, and video related to both my project and HCI in general

Another Video on Usabilty in Industry

Posted on 21 July 2011

The Value of Usability Specialists to Industry

Great vid outlining the value added to firms in industry by usability specialists.

Posted on 21 July 2011

OpenSCAD: A Freeware, programmatic, CAD tool. Perfect for 3D Printing.


Oh I'm a fan. A big fan.

Posted on 08 June 2011

Meet the Makerbot


A light weight, low cost, self assembled 3D printer for the common ma(ker)n.

Posted on 08 June 2011

Thingiverse: A subuniverse for people who make....things!


Very cool website which acts as a massive repository for the designs and codes of numerous objects that people all around the world make for use with 3D printers. The site seems to double as an online community for makers to come together and share ideas, while admiring the work of their contemporaries. Its a common destination for Makerbot developers, and has drawn a lot of attention to the programmer friendly, freeware CAD tool named OpenSCAD.

Posted on 08 June 2011


In light of the share length of the second post in my weekly blog, I figure it would be a good idea to add a category for my miscellaneous thoughts and reasoning.

Inkscape Frustrations

Scripting Inkscape for Mac OSX can be a pain. In theory, its pretty easy to do, but there are some tricky things you should remember when trying to control inkscape via command line. Here are some of the hurdles I ran into:

When scripting via command line for OSX, its important to know that there is limited scripting functionality available for the inkscape binary deployed by the universal dmg. I stuggled with this until i finally realized that there were just certain features that I was never going to be able to access. Therefore, If you are serious about scripting inkscape, you should install it from source via macports. To do this simply open up an terminal and run:

> sudo port install inkscape

Be warned that this process will take hours, as inkscape needs to configure a large number of dependecies.

If for some reason you decide you want to install inkscape manually from source (as the silly Compiling inkscape via source for MacOSX webpage might lead you to believe is a good idea), you might run into issues one you start trying to run./configure. I had a lot of issues with configure being able to find the right directories for LDFLAGS, CPPFLAGS, and PKG_CONFIG_PATH (and thus beign unable to find dependecies which were already isntalled). you can bypass the standard pckconfig by setting inkscape own custom locations for CPPFLAGS and LDFLAGS, called INKSCAPE_CFLAGS and INKSCAPE_LIBS. Run configure with:

> ./configure INKSCAPE_CFLAGS="-I/opt/local/include" INKSCAPE_LIBS="-L/opt/local/lib" --enable-osxapp --prefix=/some/path/you/want/to/build/to hopefully running:

> make

> make install

should work after this. Lastly, if you are trying to export DXF output form inkscape via the command line, this functionality is not available by default, so you will have to use a work around. There is some good advice on how to do this available from this website.

Posted on 12 July 2011

Taking My Project in a New Direction

In light of my recent conversation with Amy, I'll be taking my idea to make simple, interactive economic visualizations for the common person, and instead make them accessible to the blind. I see this as an even greater challenge, and one which will be all the more exciting to tackle. The idea, however, takes me a bit beyond economics concepts, and back towards teaching. At the moment, I can only see such a tool being helpful in a situation where you have an instructor helping to teach a blind student, as the device might be hard for a blind person to operate independently. As a matter of conceptualizing my project, I will stick with my supply and demand example, although that may easily change as my research continues. To make these concepts meaningful to the blind, I will have to take my original concept of interactive visualizations, and try to make them both tactile and interactive. That is, I will have to take these 2D visualizations and move them into 3D space, and allow for users to physically manipulate them so that they can feel the relationships. For example, this might mean physically pulling a 3 Dimensional supply curve across a 3 dimensional representation of a 2D coordinate system, so that the blind user can feel the increase in productivity, feel interaction with the demand curve, and interpret the change in price.

In order to move this into physical space, I am going to experiment with printing out and assembling these learning tools using a 3D printer. This means that I will initially have to assemble the curves in openSCAD. This got me thinking that I might be able to make the curves fully customizable, so that an instructor who wanted to demonstrate say, quadratic functions, could write their own equation and and have it graphed, and printed. To make this easy for instructors to do, I will attempt to construct some sort of framework, where instructors can use a simple 2D graph editor to construct the simulation they want to print, and then have that automatically transliterated into a readable format for openSCAD, which would then compute simple transformations onto the curves to make them 3D and blind friendly, and then have them printed out and ready for physical assembly.

Posted on 10 June 2011