[R] Playing with rgl: a Youtube video

Duncan Murdoch murdoch at stats.uwo.ca
Tue Dec 22 19:10:34 CET 2009


On 22/12/2009 12:49 PM, Mark Knecht wrote:
> On Mon, Dec 21, 2009 at 4:42 AM, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
> > I've just posted a demo made with the rgl package to Youtube, visible here:
> >  http://www.youtube.com/watch?v=prdZWQD7L5c
> >
> > For future reference, here are the steps I used:
> >
> > 1.  Design a shape to be displayed, and then play with the animation
> > functions to make it change over time.  Use play3d to do it live in R,
> > movie3d to write the individual frames of the movie to .png files.
> >
> > 2.  Use the ffmpeg package (not an R package, a separate project at
> > http://ffmpeg.org) to convert the .png files to an .mp4 file.  The
> > individual frames totalled about 1 GB; the compressed movie is about 45 MB.
> > 3.  Upload to Youtube.  I'm not a musician, so I had to use one of their
> > licensed background tracks, I couldn't write my own.  I spent a lot of time
> > picking one and then adjusting the timing of the video to compensate.  Each
> > render/upload cycle at full resolution took about an hour and a half.  It's
> > a lot faster to render in a smaller window with fewer frames per second, but
> > it's still tedious.   It's easier to synchronize if you actually have a copy
> > of the music locally, but Youtube doesn't let you download their music.  So
> > the timing isn't perfect, but it's good enough for me!
> >
> > Duncan Murdoch
> >
>
> Cool enough video. Thanks for sharing.
>
> I'm curious - did you do the equations for the knot in R? If so what
> did they look like, assuming there's no reason you cannot share it.
>   

The knot has equation

cbind(sin(theta)+2*sin(2*theta), 2*sin(3*theta), cos(theta)-2*cos(2*theta))

The threads in the braid have equation

cbind(sin(theta) + sin(2*theta)/2, sin(theta-pi) + sin(2*theta)/2, theta)

in the local coordinates of the knot.

Overall it's about 100 lines of R code, too ugly to post.

Duncan Murdoch




More information about the R-help mailing list