Category Archives: Miscellaneous

Long Plane Rides and JCGT

I’m about to embark on a 20-hour (or so) plane trip to Shanghai. With most of that time being in the plane, I’m loading up on stuff to read on my iPad. (Tip: GoodReader is great for copying files from your DropBox to your iPad.) JCGT does a great job of helping me fill up. Just go to the “Read” area and there’s a long list of articles, select the ones that sound interesting, and download away (well, having all the papers be called “paper.pdf” is not ideal, but that will eventually get fixed). No messing around with logging in, no digging to find things, just “here’s a nicely-illustrated list, have at it”. It’s amazing to me how much the little illustrations help me quickly trim the search.

In contrast, I had to do a few minutes of clever searching to find the SIGGRAPH 2013 Proceedings. Shame on you, ACM DL, for not responding properly to the searches “SIGGRAPH 2013” or “SIGGRAPH 2013 papers”. The first search shows everything but the papers, since the papers are part of TOG; the second search gives practically random results.

Interview with three.js Creator

Three.js is one of a number of free WebGL libraries. First released in April 2010, it has become pretty popular, and includes a huge number of demos. I wanted to know more about its origins, so interviewed its creator, Ricardo Cabello, aka mr.doob, who lives in Spain.

* What is your background: your education, your current job?

My education was a bit of a disaster. I went to primary school, in the later years there I was also going to an academy to learn to draw comics. Then I started studying electronics in secondary school and later moved to arts. It wasn’t really the right time for me to study so I quit before going to University.

During all these years I was fairly active on the Demoscene and that’s where it all comes from. However, back then I was not a programmer, I only created the graphics, and came up with ideas for demos and stuff.

Currently I’m a freelancer doing web development, mainly working for Google Data Arts Team.

* Why did you create three.js?

There were many reasons. I was always curious to know what I could do with my own 3d engine. I also thought it was a good challenge for me. I had been tinkering with one since my ActionScript days, learning the basics and slowly figuring out the right architecture.

However, the main motivation probably was the fact that, back in the Demoscene days, everyone were doing their own 3d engines that were only used for one or two demos. For the next demo they would create a new engine. I always found that a bit wasteful so I thought of doing one that others could reuse.

So now I’m trying to build the kind of engine and tools I wish I had back then.

* How did it get to be so popular?

I don’t know. Compared to the ones that were popping up at the time, while not the most performant, maybe it was the one with the friendliest API and the easiest to extend. Thanks to that, it now has tons of features and handy code sitting in the examples folder.

* Do you have a sense of how many users there are?

Not really…

* How many people contribute code?

There tends to be around 3 active people. There are many others that do small random contributions/fixes: 171 in total so far.

* Is three.js’s support and extension a part of your job, a hobby, or both?

I guess both 🙂

* Where’s three.js going? Do you have a plan, or does it depend on user contributions?

There is no clear plan. If anything, I just want the web to be more demoscene-ish. More realtime/interactive stuff and less videos.

* One problem with having users is that the API gets locked into place. Do you have any plans to change any APIs and deprecate older classes? For example, “CubeGeometry” is misnamed, since the method actually creates boxes, not just cubes.

That’s probably the biggest problem. The API is still not locked and we break backwards-compatibility from time to time. There is a wiki page that documents all the changes.

However, we try to add deprecated messages here and there for some releases and try to avoid breakage. In the case of CubeGeometry, we would rename it to BoxGeometry while still keeping a CubeGeometry class that would return a BoxGeometry when instantiated plus throwing a warning on the console.

I think the API is getting there, though. It’s starting to feel right. The only parts I’m not done with are loaders and materials.

* What sort of technical challenges have you encountered? Does all three.js code work on pretty much all browsers and platforms (ignoring Internet Explorer)?

There have been many challenges, starting with finding the best coding patterns to use in JavaScript to avoid garbage collection. We still struggle with that. Next is finding the most useful data structures for geometry and materials. Then how to pass all that to WebGL in a performant way. We still have a lot to do there. But luckily this is all under-the-hood stuff that most users won’t even notice.

As for compatibility, yes, we try to support as many platforms as possible.

* In the area of interactive rendering, what’s the biggest surprise to you over the past ten years? Is there any new capability or platform or social phenomenon that has stood out in your mind?

I guess the fact that I’ve been following the demoscene for years has rendered me insensitive about these things… I remember loving Google Body (now Zygote Body) because it showed how 3D could be actually useful as a presentation medium. You couldn’t grasp the data in the same way if the interface was 2D.

* What do you think is the biggest problem facing the field of interactive rendering at this point?

Lack of WebGL support on Safari for iOS and Chrome for Android. As soon as those browsers add support for it I can see this properly taking off.

* Which way is up, the +Y or +Z axis?

Y is up. If you’re consistent with the 2D graphics world (X right, Y up (well… down)) then the missing axis is Z which becomes depth.

JCGT Gathering at SIGGRAPH 2012

If you’re interested in the new open-access “Journal of Computer Graphics Techniques“, some of us editors, contributors, and other birds of a feather are informally meeting up at SIGGRAPH 2012. You’re welcome to come and chat (half the point of SIGGRAPH, amirite?):

Time: 5:30-6:30 pm Monday (just before this party in the same hotel)
Place: Marriott HQ hotel lobby, behind registration. This area:

Yes, this time conflicts with the Electronic Theater on Monday, etc., etc. – every time almost every day from 9 am to 8 pm on conflicts with something, and oddly no one wanted a 7 am meeting.

Morgan McGuire, the Editor-in-Chief of JCGT, won’t be attending SIGGRAPH, but has a great blog entry about JCGT’s progress and status. The whole post is worth reading, and I’ll repeat the last part here:

How is the JCGT board funding the journal?

The answer comes in three parts. First, it isn’t that expensive to publish a graphics journal electronically. All of the writing, editing, and reviewing is done by volunteers and most of the software is free open source (LaTeX, BibTeX, Apache, MySQL, mod_xslt2, Emacs, Ubuntu, etc.). The board is unpaid, as is the case for most academic editorial positions. Graphics authors and editors are capable of producing professional-quality typesetting, layout, and diagrams on their own.

Second, Williams College has a grant from the Mellon Foundation to create digital archives to match the quality and reliability of the college’s substantial physical scholarly archives. Those physical archives are in rare books, visual art, scholarly journals, and congressional papers. I find the breadth and depth of those fascinating: the college’s holdings include original drafts of the US Declaration of Independence and Constitution, first editions of major scientific works such as Principia Mathematica, and paintings by major artists such as Picasso. The college is well-positioned to archive and conserve digital computer graphics papers and unlike a commercial publisher, an academic library has no agenda for those materials beyond preserving knowledge for all.

Third, the minor incidental costs of advertising, hosting, and legal are being picked up out of pocket by a few of us. Of of the financial contributions and dues I’ve given to graphics organizations, this was the one I was most pleased to make. We’re not accepting donations or seeking outside funding–that would subject us to bookkeeping overhead and legal requirements. If you want to support the journal, the best way to do so is to read it, write for it, and offer your services as a reviewer.

One other tidbit: the first paper accepted by JCGT has been downloaded over 10,000 times in four weeks. Clearly there’s a high curiosity factor for an inaugural article, but reaching this wide an audience is a good sign.

New Open-Access Computer Graphics Journal

After talking about open access so much, it feels great to finally be doing something about it! Eric and I are both on the founding editorial board for the Journal of Computer Graphics Techniques (JCGT), a new peer-reviewed computer graphics journal which is open access, has no author fees, and is practice-focused (in the spirit of the Journal of Graphics Tools).

Similar to other journal “declarations of independence”, the JCGT was founded by the resigning editorial board of the Journal of Graphics Tools (JGT). Initially created as a “spiritual successor” to the Graphics Gems series of books, JGT had a unique focus on practical graphics techniques and insights, which is being continued at JCGT.

With Morgan McGuire (the editor-in-chief) and the rest of the editorial board, we plan to leverage this illustrious history, our expertise, and the advantages of online self-publishing and open access to create a truly exceptional journal. But we need your help. Like any journal, JCGT can only be as good as the papers submitted to it.

If you are a researcher, we hope the pedigree of the editorial board, the increase in impact afforded by open access, the lack of author fees, and the streamlined process will make JCGT compelling to you as a publication venue.

We also want to reach out to industry practitioners (especially game developers) who would not typically consider publication in a peer-reviewed journal. Similarly to its predecessor, JCGT emphasizes practicality and reproducibility over novelty and theory, and the papers differ from the typical “research paper” style (lengthy “related work”, “conclusion” or “future work” sections are not required). There are also many advantages to publishing in JCGT vs. more traditional industry channels such as trade conferences, magazines, books, and blog posts. The open access format guarantees wide and immediate distribution, and the peer-review process will provide valuable insights and comments on your work from some of the top experts in the field as well as assure potential readers of the high quality of the work.

Open access to research: an idea whose time has come. Be a part of it!

How to Submit SIGGRAPH Talks or Dailies at the Last Minute

UPDATE: The Dailies deadline has been pushed back to May 21st.

The last deadline for submitting SIGGRAPH Talks and Dailies is on May 1st, in just two days (the exact deadline is 22:00 UTC/GMT on May 1st – you can use this website to find out what time that is where you are).

That doesn’t leave much time at all. However a submission to either program can be done quickly, and I’m going to detail the exact steps needed. I’ll list Talks and Dailies separately, since each of these programs not only has a different submission procedure but is relevant to a different audience (Talks are typically presented by graphics programmers and tech artists; Dailies by production artists). This post in general is geared towards game developers rather than researchers, so I’m talking about Word rather than LaTeX, etc.

Last-Minute Talks Submission Process:

  1. Decide what you are going to talk about. Note that SIGGRAPH Talks are only 20 minutes long, and can cover a variety of topics. Some example Talk abstracts are linked at the end of a previous post; the guidelines under “Production Talks” in the Talks page “Evaluation” tab can also be useful. In general if you recently did anything technically cool related to graphics (rendering feature, art tool, asset creation workflow, etc.), it might be a good Talk topic.
  2. Make sure you have any needed permissions from your boss / employer / etc. to submit the Talk.
  3. Write a one-page abstract using this Word template – the links from the first step can also be useful for seeing how to boil down your presentation into a one-page description that will resonate with the jury. Make sure the abstract is only one page long, has at least one image, and clearly describes the specific innovations you will talk about. Save out a PDF file.
  4. If your Talk topic has a dynamic component to it (e.g. it’s about animation, simulation, or anything else that can’t be judged via still images alone), capture a small amount of video to upload with your submission; a few seconds to a minute are enough in most cases. The video must be in QuickTime MPEG-4 or DivX Version 6 formats, and the file size should not exceed 100 MB (smaller is better for ease of uploading – try to keep the file small by reducing resolution and increasing compression  – not too much or it will be hard to see the visual quality of your results).
  5. Create an account in the SIGGRAPH Information System (just log in if you already have an SIS account). Click on this link, fill in the items marked in bold red, and click the “Create My Account” button at the bottom. An email will be sent to the address you provided – make sure it wasn’t caught in a SPAM filter (it will arrive from sis_support@siggraph.org) and use the provided temporary password to log in. Check the “Change Password” checkbox, type in your temporary and new passwords and click the “Save” button and subsequent “OK” button.
  6. Click on “Begin a New Submission”. You may be asked to verify your account details – if this happens look them over, make any needed changes, click the “Save These Changes” button at the bottom, and click “Begin a New Submission” again.
  7. Look for the “Late Breaking” submission type, and click the “Create” button on that row.
  8. Copy-paste some appropriate text from the one-page abstract you previously wrote to fill in the “Title”, “Summary Statement” and “Short overview” sections. Select a few appropriate keywords and a primary jury  category (most likely “Behind the Scenes”, “Best Practices”, or “Methods and Systems”) from the drop-down lists provided. If you’ve previously presented the work elsewhere (e.g. GDC), check the appropriate checkbox and provide details. If the material you are uploading now differs in some significant way from the final presentation (e.g. you are using test assets now and will show final game assets at SIGGRAPH), check the appropriate checkbox and provide details. Ignore the “English Review Service” checkbox – there won’t be time to make use of that service; if you’re not fluent in English, ask a friend or colleague who is to help look over your submission. Don’t worry about the two Education Resources checkboxes either. Click the “Next>>>” button at the bottom of the page.
  9. Select “Yes” for “I have the necessary rights, permissions, and/or licenses…” (make sure you are indeed not uploading anything you don’t have the rights for – as long as its all from your work and your employer is OK with it you should be fine). In most cases you will select “No” for “My material contains audio” unless you are planning to upload video with an audio track (which you typically won’t need to do). If there is audio make sure it isn’t something like a song you don’t have permissions for (if this is in-game audio and your employer approves, you are likely OK here).
  10. You won’t have time now to ensure your employer is OK with all the various permissions, so just click “Deny” on the “To grant or deny all of the following rights to SIGGRAPH 2012…” option. Plan to talk to your employer after the deadline and try to get permission to grant as many of these as possible – if your submission is accepted you will be able to modify the permissions later (make sure you do!), and if it isn’t it won’t matter. Enter your full name in “By entering my full name…” on the bottom of the page and click “Next>>>”.
  11. On the “Add Presentation Formats” page, click the “Create->” button for the “Talk” format.
  12. Choose “20 minutes” for the length of your talk – it’s hard to get longer talks accepted and most topics of interest can be squeezed into 20 minutes. Click “Eligible for Studio Talk” if your talk has anything to do with asset or level creation, especially if there is a user-generated content aspect. Click “Next>>>”.
  13. Use the next page to upload the one-page PDF abstract you previously created. Also upload a “representative image” (typically the same image you used for one of the abstract figures, in JPEG format), and any video you have captured previously. Click “Next>>>”.
  14. Use the next page to add any co-authors. You can also add them later if the Talk is accepted, so if you don’t have time to do so now it’s OK. Click “Next>>>”.
  15. You are now done; you can still log in again any time before the deadline to tweak your submission if you want. Good luck!

Last-Minute Dailies Submission Process:

  1. Decide which of your work you will show. Dailies presentations are extremely short (about 2 minutes); they are intended to showcase a single bit of high-quality production art (animation, model, sequence, rig, effect, shader, etc.). There should also be an interesting backstory of some kind (an impossible deadline, a late-night inspiration, an artistic argument, an unexpected romance, etc). This example Dailies presentation and lists of accepted Dailies from SIGGRAPH 2010 and from SIGGRAPH 2011 might help in picking the right piece.
  2. Make sure you have any needed permissions from your boss / employer / etc. to submit the artwork.
  3. Write up the backstory of working on the piece. Did you have to work under a completely unreasonable deadline? Did you end up doing the exact opposite of what the art director said she wanted and she loved the results anyway? Did your life experiences inform the work (e.g. a background in breakdancing influencing a combat animation)? This should be an amount of text you can read onstage in less than two minutes, while video of your artwork plays behind you. Save out a PDF file of your backstory from Word, Google Docs etc.
  4. Capture a video (no more than 90 seconds long) which shows your work; this would be something like a model turntable, looping animation, progression sequence, etc. The submitted video needs to be QuickTime, H264 encoded, 640 x 360p, up to 90 seconds, no sound. This low-res video is just for reviewing purposes; upon acceptance you will need to submit a 720p video.
  5. Create an account in the SIGGRAPH Information System (just log in if you already have an SIS account). Click on this link, fill in the items marked in bold red, and click the “Create My Account” button at the bottom. An email will be sent to the address you provided – make sure it wasn’t caught in a SPAM filter (it will arrive from sis_support@siggraph.org) and use the provided temporary password to log in. Check the “Change Password” checkbox, type in your temporary and new passwords and click the “Save” button and subsequent “OK” button.
  6. Click on “Begin a New Submission”. You may be asked to verify your account details – if this happens look them over, make any needed changes, click the “Save These Changes” button at the bottom, and click “Begin a New Submission” again.
  7. Look for the “SIGGRAPH Dailies” submission type, and click the “Create” button on that row.
  8. Enter a title for your submission, as well as a one-sentence summary of the art piece and a slightly longer (2-3 sentences) overview explaining the key points (why it is good/interesting/etc.). Don’t worry about the Education Resources checkboxes at this point. Click the “Next>>>” button at the bottom of the page.
  9. Select “Yes” for “I have the necessary rights, permissions, and/or licenses…” (make sure you are indeed not uploading anything you don’t have the rights for – as long as its all from your work and your employer is OK with it you should be fine). Select “No” for “My material contains audio” (your captured video should not have an audio track).
  10. You won’t have time now to ensure your employer is OK with all the various permissions, so just click “Deny” on the “To grant or deny all of the following rights to SIGGRAPH 2012…” option. Plan to talk to your employer after the deadline and try to get permission to grant as many of these as possible – if your submission is accepted you will be able to modify the permissions later (make sure you do!), and if it isn’t it won’t matter. Enter your full name in “By entering my full name…” on the bottom of the page and click “Next>>>”.
  11. Use the next page to upload the PDF backstory you previously created. Also upload a “representative image” (just a frame from your captured video, in JPEG format), and the video itself. Click “Next>>>”.
  12. If your piece has any co-authors (most Dailies just have one author, but there might be someone else you want to also credit on the piece) use the next page to add them. You can also add them after acceptance, so if you don’t have time to do so now it’s OK. Click “Next>>>”.
  13. You are now done; you can still log in again any time before the deadline to tweak your submission if you want. Good luck!

SIGGRAPH 2012 Hotel Registration Open

Go get your hotel reservation for SIGGRAPH 2012 now. Reservations can be cancelled with no cost up to July 19th, so if you think there’s the slightest chance you’ll go, grab a room now.

The HQ hotel and the Figueroa are already gone. The Ritz Milner is certainly cheap and pretty close, but some TripAdvisor reviews eventually scared me off. I then switched to the Luxe City Center (used to be a Holiday Inn), as I prefer being close to the convention center. But I recall complaints about things like the WIFI stinking at the old Holiday Inn, and the place is even pricier now. So I rebooked yet again into The Sheraton, as a pretty good compromise among the factors of cost, quality, and location – being more downtown can be good, as you’re closer to restaurants and other nighttime activities.

Now How Much Would You Pay?

In the past few week I’ve learned of a number of ways to access our book’s content. Some are just plain new, others I simply didn’t know about. Here’s a summary of sources I know, listed from lowest to highest price.

I’ve heard we’ll eventually have a “rent for six months” option for the Kindle version, which makes sense for students. Frankly, the Kindle and Google prices hit me as high: you don’t actually own anything, in the sense that you can’t sell it later. Our publisher says Amazon controls their Kindle price – beats me how that works. On the other hand, electronic versions have the advantages of weight (none extra) and searchability. Me, I love having my own internal PDF version of the book that I can search and copy & paste from. It’s unfortunate that PDFs are too easy to pass on to others.

Personally, I like the Google eBook and Books24x7 concept the best, where you can access the book from any web browser by simply logging in (no installation needed, no need to authorize the device, etc.). This method of access seems to be at a good balance point between reader usability and author/publisher protection.