I'd like to create a branch for the project

...but I'm not really sure where to start!

Hello all, it's nice to meet you. I'm 21, from England, and I like to code. I'm studying Computer Science at University, which I would like to take into a career of graphical programming. But I think now's the time to start working on my CV, and getting to grips with programming projects like those I would like to work on out of college, because I guess I ought to develop myself as a programmer (& I enjoy it!).

The situation that I'm in is that I'd like to start some branch of project work that I can independently work on, but I really don't know where to begin, or what contribution you would need....my scope of ambition isn't that huge - I'm basically looking for something useful that I could produce for this project, written in c/c++ (but I'm flexible), that an intermediate level programmer could accomplish.

I have attempted contribution to such projects before, but am often presented with a situation where I'm coming into the project as a newcomer, and I'm directed to a hoard of code (tens of megabytes), and it's not that useful. But I'd really like to create/work on little useful branch I could do for this application. By that I mean, I envision a project that (hopefully!) implements some useful algorithm(s), that I can actually research and turn into code myself (even if it's just as a starter, that could lead to more), but I'm not really sure what the project needs, or where I should start looking. I'd really appreciate it if someone could give me some guidance on this - I know a little about stuff like Bezier curves, Matlab, Markov models, and the kind of stuff that undergraduates know about. But I'm willing to do more, and put quite a bit of time into it.

      Anyway, thanks for any guidance you can give me,

           I just re-read it, and it sounds a bit desperate, but, it's sincere.


Hello Mayur,

Thank you for your generous offer of help. In Radiance, what we mostly need assistance with at this point is porting work to the Windows platform. Specifically, we need to replace some of the Unix system facilities, such as subprocesses, interprocess communication, and file locking, and make these work under Windows via system-independent interfaces. In addition, we have a few programs that produce graphical output using OpenGL or X11, which we need to get ported to Windows.

Here is a partial list of separable tasks we need to complete, for which we have scarce resources (quoting Georg Mischler):

  lock files
    Very easy to split as a seperate subproject with a clearly
    defined and simple API. High priority in my opinion.

  Persistence for rtrace and rpict
    Introduce an abstract level in rt/persist.c, so that fork/exec
    can be hidden and replaced with an equivalent on Windows.

  Parallel rendering
    Introduce an abstract layer in rt/raypcalls.c and rt/r[pt]main.c,
    so that fork/exec can be hidden and replaced with an equivalent
    on Windows.
    Among other things, this would make it possible to port ranimove.

    Introduce an abstract layer for next_process() in rad.c, so that
    fork/exec can be hidden and replaced with an equivalent on Windows.

    Introduce an abstract layer for putpiece() in rpiece.c, so that
    fork/exec can be hidden and replaced with an equivalent on Windows.

For the graphics porting, we have three programs, the third of which would be significantly more challenging:

rvu driver
     Need to be able to write out 24-bit colored rectangles and take textual user input.

     Need to port X11 picture display program to Windows

     Need to write OpenGL display driver for interactive holodeck system

If any of these seem interesting or doable to you, let us know and we can fill you in with more details and provide you with a starting point in the source tree.

If you are principally interested in lighting simulation and graphics algorithms, as opposed to the more systems-related work we have slated, you are welcome to take the source code and experiment with it.