Niels Joubert

This is my portfolio, demonstrating research I've been involved in and projects I've worked on. My major fields of interest are computer graphics and human computer interaction, and I've conducted research on physically based simulations and online video interaction. My minor concentrations are large-scale system design and astrophysics, both as a compliment to my graphics interest. My research interests are accompanied by a passion for teaching computer science, and I'm a member of the teaching staff at UC Berkeley.


As an entrepreneur I am connected to the startup world through my current involvement with startups and the Bay Area's culture of technological ventures.

Brutesoft Inc. Visit website
VP of Research : Today, BruteSoft provides enterprises with a radically new approach to managing their computers in an efficient and effective way, saving you money and reducing your carbon footprint. BruteSoft's DistriBrute product suite delivers complete desktop, laptop and server provisioning, deployment and upgrading of applications, as well as the distribution and management of patches. Our products have reached the pinnacle of software distribution efficiency. As a proof point, our products are capable of transferring the equivalent of a DVD of 5GB within 5 minutes to 10,000 desktops on a 1Gbit LAN/WAN.


I focused my undergraduate career on developing my skills as a researcher and explore my interests in computer science and related fields. Here I present a short summary of research groups I am affiliated with, and publications I have been involved in.

Berkeley Computer Animation & Modeling Group Visit website
SIGGRAPH 2009 Simulation Paper (in progress): My collaborators and I have made a concerted effort to exploit the environment of multiplayer games to improve simulation quality for end users. By synchronizing simultaneous simulations between clients and servers, we can mitigate the effects of network latency while providing simulations of much higher quality than clients can generate individually.

Yahoo! Research Berkeley Visit website
"Enhancing online personal connections through the synchronized sharing of online video", SIGCHI 2008 Paper: Our work focused on creating an environment where the sharing of media consumption between multiple people can be recreated online. We expanded the traditional viewing experience of multiple people watching the same video and have the ability to discuss and review it, into the online domain.

Alex Filippenko Supernovae Research Group Visit website
Co-Author of SN2008S: A Cool Super-Eddington Wind in a Supernova Impostor
Acknowledged in The Exceptionally Luminous Type II-L SN 2008es
We use a robotic telescope and custom computer vision software to detect new supernovae in nearby galaxies, and track these violent cosmic events through a series of photometric follow-ups using Lick Observatory's 1m telescope. Our research has led to finding several extraordinary supernovae, and my work as a researcher and certified observer was acknowledged and published.


Client-Server Simulation Improvement & Cloth Simulation (Work in Progress)
I'm working on improving simulation quality and efficiency in multiplayer game environments. To that end, I've built a real-time cloth simulator and am working on synchronizing simulations between clients and servers to improve simulation quality. This project is done in conjunction with Sebastian Burke, and under lead of Prof. James O'Brien.

Marionette - Pixar Animation Studios Software Engineering Internship
I interned at Pixar during Summer 2007, where I was a member of Pixar's next generation software engineering team. I worked on symmetric rig modeling as part of Pixar's "Marionette" animation toolkit. Details of my work in still under Non-Disclosure Agreement.

Rockband Vision
Download paper | See Online Video
Rockband Vision is a computer vision system capable of playing the Rockband console game autonomously by monitoring the game's display through a camera pointed at a television connected to the console. Rockband is an interactive band simulator that allows human players to play music according to on-screen musical notation. Our system is capable of interpreting the Rockband video feed presented to human players - it reads the musical notation in the feed and manipulate the game's input to play the game. Since it monitors the screen through a video camera, the system is capable of playing alongside human players to form a 4-person band with some instruments played by people, some by our vision system. This project relied on a breadth of knowledge from the computer graphics, numerical analysis and physical computing areas, and was built on top of the OpenCV framework. We presented it as our final project for Berkeley's Computer Graphics course.

Bezier Surface Renderer 

This project served as an exploration of curved surface rendering. Input files describing Bezier patches are interpolated using DeCasteljau evaluation into a cloud of points, grouped into triangles, and tessellated further until a measure of flatness is satisfied. More details can be found on my class webpage. Prototypes were used to aid designing of this project. Rapid prototyping was employed to expanded my understanding of the concepts of splines, and provide rapid feedback of my design. You can access them as Java applets here:
Bezier Curve Prototype (Java applet): I experimented with Bezier curves by prototyping a Java applet that provides a simple editing interface to create these curves. (Time to implement: approx. 90 minutes)
Bezier Surface Prototype (Java applet): This applet attempts to subdivide a set of bezier patches into triangles, allowing me to experiment with interpolation methods for this project. (Time to implement: approx. 120 minutes)

I implemented a full-featured Raytracer that renders a description of a scene into an image. The basic premise in the design of this project was to use no external libraries whatsoever - I built each component from the ground up. A full description of this project, including the design methodology, can be found on my Raytracer project website. Examples:
Phong Shader 

I implemented the Phong shading algorithm to shade objects in OpenGL. This served as a component for my raytracing project, but allowed me to experiment with implementing shading algorithms that interpret normals, colors and color mixing inside OpenGL. This was a project for Berkeley's CS184 course. Examples:
Particle Physics Simulator 

Data structures play a crucial role in Computer Graphics. I implemented a Quadtree structure to store points in 2D space, allowing simulation of collisions in a collection on the order of 10 000 points. A default environment is populated with a random distribution of particles, each with a random velocity vector. The simulation optimizes itself by calculating the next point in time at which two particles will collide, and moving the simulation of the environment to that point. Collisions are fully elastic and calculated using a non-deterministic physics engine.

I interned at Yahoo! Research Berkeley for the duration of 2007. I was a member of the Media and Community team, responsible for the back-end Flash video server, as well as synchronous video sharing applications built on top of the platform I developed. The video server platform was based around the Red5 video server, and our prototypes, codenamed Zync and Webzync, went on to be intergrated into Yahoo! Messenger and Yahoo! Live.

SIGCHI 2008 Video Interactivity Paper 

"Enhancing online personal connections through the synchronized sharing of online video" David A. Shamma, Marcello Bastea-Forte, Niels Joubert, Yiming Liu.

Going to movies in a group and inviting friends over to watch TV are common social activities. This social engagement both improves the viewing experience and helps us stay close with our friends and family. To bring this feeling of co-presence to the Internet, we developed a set of prototypes that enable people to feel more connected by watching web video together in sync. We present the preliminary results of a quantitative usage study and show initial evidence that simultaneous video sharing online can help people feel closer and more connected to their friends and family.

Zync & Webzync synchronous video sharing applications 

Zync is the first incarnation of our video sharing concept. Zync comes in the form of a Yahoo! Messenger plugin that can play online video. By dropping a video into Zync, the two participants in the conversation sees a synchronized stream of video between both parties - in other words, each person received the same frame of video at the same point in time. This mimics the behaviour of having several people watching the same television - if one participant decides to, for example, skip ahead in the video, all participants are involved.

(non-public) used the platform provided by my modified version of Red5 to recreate the Zync experience as a many-to-many online chat interface. Multiple people can join a room, watch video clips (either through posted content or by streaming video from other online providers) and control the viewing experience. We worked in conjunction with the Yahoo! Live team, and we cross-polinated project ideas. Some of the concepts I mention can now be found implemented on the Yahoo! Live site.

Deep Video Annotation, segmentation and linking - Hack Day TV 

A fair share of video on the internet is long clips containing multiple topics, events, people or plots. We used the technology that I built for WebZync to create a community-based deep linking and tagging system. Users could mark segments of a video clip, tag them appropriately, and receive both a link to the specific segment as well as mark the segment permanently for all to see. We extended this idea by providing preset sections of unknown length and start time of a video (in our case, known speakers and projects in a long conference video) and asked the community to tag these sections as they found them. The results of this approach can be seen in Hack Day TV! - an application we built to archive the happenings at Yahoo's London Hack Day in 2007. It was a great success and allowed us to tap the wisdom of the crowd to find interesting parts of this 4 hour video without us tagging a single clip by hand.

Red5 Open Source Flash Video Server 

Red5 is an open source flash video server, supporting video streaming, remote procedure calls and shared objects. I implemented improved file access and indexing, REST driven on-the-fly track splicing and several synchronized video sharing applications on this platform.

When I joined the research team, they were using a slightly modified HTTP server to progressively download video to the client. I started working on the Red5 Open Source Flash video server as an alternative to the in-house server. Red5 had serious limitations - seeking was slow and used excessive disk space, audio support was minimal, and there was no abstraction between files on disk and video streams. I solved each of these issues and Red5 became the prime platform for the research lab's video prototypes.


CS184 Computer Graphics. Received Oustanding GSI Award in 2009.
I served as a Student Instructor for Berkeley's undergraduate computer graphics course during both Fall 2008 and Spring 2009. The teaching staff for this semester consisted of myself, my fellow student James Andrews and Professor James O'Brien (2008) and Professor Carlo H. Sequin (2009). I taught two discussion sections, wrote handouts as supplements to lectures and projects, and worked one-on-one with students to develop final projects for the class. My instructor page can be found here.

Self Paced Center
Berkeley's Self Paced Center offers one-on-one teaching of introductory computer science courses and language-specific training. I spent a semester working as a tutor, teaching Java, Scheme, C/C++ and introductory programming. All the teaching in these courses happen on a one-on-one level between students and tutors. I received high ratings as a tutor and strove to embed a fascination for computer science through an intricate understanding of the concepts along with an enjoyment for hacking on projects.


HTTP/1.0 compliant web server
A fully functional web server, supporting keep-alive connections and chunking for high throughput, written in C with no dependencies outside of kernel-provided sockets.

Modified TCP-IP Implementation
A reliable data stream protocol built on top of UDP using selective acknowledgements and TCP Vegas style congestion control to improve TCP throughput and performance in lossy situations.

NACHOS Operating System
Extensions to the basic NACHOS operating system to support threads, multiprogramming, caching and virtual memory. 
2draw is an online art space, providing drawing tools and a social hub for amateur and professional artists. I joined the 2draw team (currently 4 members) during summer 2008. With such a small team we are all involved with the many facets of the site. I have been responsible for server maintenance and overhaul and web framework development. I am also involved with our blog where we discuss inspiration for artists.

Yahoo! Research Berkeley 
Unfortunately many of our prototypes are either not public or no longer online. Some are left:
  • Hack Day TV as explained in my "Online Video Interaction" segment.

Yahoo Hackdays 

I have participated in 4 of Yahoo's hackdays - 24 hour programming events focused on innovation and rapid execution of ideas. My projects include:
  • The Schedulator - an AJAX schedule organizer for Berkeley students that plugs into the campus class schedule catalog
  • MusicHydra - A location-aware cellphone app that build custom playlists of music according to the music preferences of people near you.
  • KitchenZync - A twist on the original Zync application focused around coopertive cooking! Follow a master chef with your friends in creating edible masterpieces, regardless of whether your friend is next door or on another continent. Think your crepe looks good? Then show it off to the other participants!
Reactions in the form of blog posts from Yahoo! can be found on the Yahoo! Developet Blog,
"Go Big or Go Home" (external video link) - a top 10 entry for the "Gone in 60 seconds" national film competition. 

My first forage into short films focused on my love of extreme sports. I find that the human drive to challenge Nature creates a most facinating scene for exploration through the medium of film.

"Eden downhill" 
(external video link) continued my exploration of extreme sports through film.

Stellenbosch Youth Orchestra 

The SYO is the premier orchestra for high school students in South Africa. I was one of a 3 member team that filmed and authored 5 DVDs featuring their live performances. This included live audio and video capture, non-linear editing and DVD authoring. The final DVD was used as a successful application to the Vancouver Youth Orchestra's conductor position.

Supernova Search and Tracking group 

I am a member of the research team led Professor Alex Filippenko responsible for the most discoveries of new supernovae in nearby galaxies each year. I am a certified observer, and have used the Nickel 1m telescope at Lick Observatory, on top of Mt. Hamilton extensively for Supernovae photometry follow-ups.
Official website.
Press Release.

Co-Authored Papers:
SN2008S: A Cool Super-Eddington Wind in a Supernova Impostor
Paper acknowledgements:
The Exceptionally Luminous Type II-L SN 2008es

Much of astrophysics consists of signal processing and simulation problems, and can serve as a rich body of work to motivate and enrich computer simulations. Berkeley's Radioastronomy course depends on the student's ability to model and simulate the solar system for tracking purposes, and apply engineering principles to measure physical parameters of objects in our galaxy. Here I present 4 papers my team authored during our radioastronomy class.

Digital Sampling, Fourier Transforms and Double Sideband Mixers. 
Download paper
We present a report on activities concerning radioastronomy bench measurements performed during the first 3 weeks of enrollment in Astronomy 121 at UC Berkeley. This document focuses on our experiments concering Fourier transforms,the Nyquist frequency, investigating Dual Sideband Mixers, and phase detection using mixers.

Radio Interferometry 
Download paper
We present a report on studying the sun, the moon and the Crab Nebula using the technique known as interferometry. We present an exhaustive discussion on radio interferometry theory, followed by a discussion of using interferometry to measure accurate declinations of point sources and accurate angular diameters of extended sources using non-linear least squares techniques.

Transmission lines, Single Sideband Mixers and the Hydrogen Line 
Download paper
This lab report covers several overlapping topics and concludes with observations of the 21-cm Hydrogen line. We examine transmission lines and waveguides to further our knowledge of the electronics we use for observations.

Mapping High Velocity Hydrogen Clouds 
Download paper | See Map
We attempted to use natural hydrogen emission to map a high velocity cloud falling into our galaxy. We spent approximately 62 hours observing a hydrogen cloud with peak signals of 2 Kelvin, forcing us to use several procedures to minimize noise and tease out our signal from the background radiation and equipment noise. Gaussian fitting and Fourier filtering accompanied by spectrum calibration allowed us to generate a map of this fast-moving hydrogen cloud:
Best viewed in FireFox 3, Internet Explorer 8 or Safari. Created with TextMate, BlueprintCSS and Scriptaculous.