Sam Birch

I'm an undergraduate (2014) at Brown University studying computer science.

I'll be joining Khan Academy for the summer of 2013.

I was an intern at The New York Times in the summer of 2012, Google in the summer of 2011, and at the MITRE Corporation in the summer of 2010.

Contact me · Resume
LinkedIn · Twitter · Github · Stack Overflow Careers · Google Profile
See some of my projects below.
  1. Image quality assessment and data scale

    This was my final project for Computational Photography (Brown CS129) in 2011. It applied established algorithms for image quality assessment at a novel scale to estimate empirically the effect of training database size. The features for the images are derived from Y. Ke, et. al. (CVPR '06) and reflect common compositional attributes of “good” photos (Ke et. al. attempt to distinguish between professional and amateur photographs). This project uses a new dataset derived from approximately one year's worth of Flickr data, using the most and least “interesting” photos from each day, amounting to about 1.4 million photographs. See »

  2. The rewriting compressor for JSON

    This open-source project, completed during my Summer 2011 internship at Google, takes advantage of the fact that many JSON parsers are, in fact, Javascript interpreters to compress JSON data into a smaller, equivalent form. See »

  3. Document reconstruction from photographs (CamScan)

    This group project was a final assignment for Software Engineering (Brown CS32). It performs photograph-to-document reconstruction, a potentially handy tool given that cameras are faster and more available than flatbed scanners. Most of my work on the project was on an algorithm to select page corners automatically and to find the homography that makes the page flat. See »

  4. Word-art posters

    This project presents a graphical depiction of the history and usage of a word as manifested in the Western canon. See »

  5. Distribution exploration with kernel density estimators

    I wrote this tool to explore distributions using configurable & interactive kernel density estimators (which are like a histogram with infinite buckets expressed as a probability density function). The explorer is written with jQuery UI & Protovis and generated with Python. See »

  6. Some tools for working with grammars and parsing

    I wrote two libraries to work with context-free as well as regular grammars, with a focus on rapid prototyping and concise, semantic language description. See »

  7. Graphing calculator using <canvas>

    This graphing calulator renders with the HTML5 canvas API. The significant work was the implementation of a parser and evaluator for mathematical functions and expressions. See »

  8. Two novel methods for precise global color thresholding

    In this paper, I show two fast methods for testing element containment that are particularly well suited to real-world color distributions in most color systems. This was my senior thesis for Boston University Academy. I also submitted it to the Junior Sciences & Humanities Symposium, where I placed 2nd in the southern New England regionals and went on to present at the national JSHS. See »

  9. Pseudo-streaming of MP3s through frame clipping

    This technique allows a server to simulate streaming, allowing a visitor to access random points in an audio recording by clipping audio data frames in conventional MP3s without loss of metadata or important headers. See »

  10. Image segmentation and re-coloring

    This experiment automatically segments images for re-coloring (to turn a pink flower yellow, for example). See »

  11. Injectable text twist

    This is an implementation of a text-twist-like game that injects itself into a page via bookmarklet. I collected the corpus from Project Gutenberg. See »

  12. CSS font explorer

    A tool I wrote to experiment with jQuery UI & CSS typography. See »

  13. Seam carving using <canvas>

    I wrote a wee implementation of seam carving using Javascript & the HTML5 canvas API. See »

  14. JS1k (2010, #1)

    This is my submission to JS1k (2010, #1). And this is a nicer version that I couldn't minify enough. See »

  15. Miscellania