Team The Ray Team

Afp

The Ray Team

log_teamtherayteam.png

Team the Ray Team: "Because you can't have too much team in your team."

Members:

  • Alessandro Vermeulen
  • Bram Schuur
  • Bart Spaans
  • Ruud Koot
  • Thijs Alkemade

ateamvan_resized.jpg

Our mobile build server (running linux of course)

Final report

Features

  • Tier-3
  • GML shape
  • Textures
  • Parallelisatie
  • command line arguments
  • anti-aliassing
  • QuickCheck?

Code

  • Shapes are instances (MultiParamTypeClasses, FunctionalDependencies, GADTs, RankNTypes, TypeSynonymInstances)
  • Continuation-passing-style in renderPixel
  • Applicative in the evaluator
  • Type safety: Data.Angle

DOWNLOAD RayTracer-1.0.3.tar.gz

Quotes

page0_blog_entry6_1.jpg

Die Plane! Die Plane!

When we were finally rendering planes correctly.

Hannibal_a-team.jpeg

I love it when a plane comes together

Screenshots

results-0.png results-1.png results-2.png results-3.png results-4.png results-5.png results-6.png

And last but certainly not least:

TeamTheRayTeam?rev=1;filename=chess.png

Movies

Our README

  Ray Tracer, Team The Ray Team
  =============================

  O hai fool, welcome to our very first Haskell Ray Tracer. In this file we will 
  explain how our ray tracer basically works and which features we have added
  on top of the Tier 3 Ray Tracer specs from the assignment.
  
  First of all we chose our name as we intended to make a great Ray Tracer in
  analogy of the great television series `The A - Team'.
  
  We started out with the idea that the program should be written in pure 
  Haskell in order to demonstrate the power of Haskell. However, after finishing
  our work we notice that we have used GHC Language extensions quite often, and
  almost always for the best.
  
  First of all, we have made it fairly easy to add any input format or output
  format you'd want in a later stage. This has been achieved by abstracting a 
  list of things, namely: 
  
    The World / Object description into our own Abstract World Description;
    
    Abstracting our basic shapes (spheres, cubes, planes, etc.) to type classes
    which makes it very easy to very locally define every function we need on
    the shapes. Including, but not limited to, the intersection and UV-mapping
    functions.
    
  In the end we didn't achieve to implement all the features we wanted, but some
  should be fairly trivial to add. The internal data structure can be changed
  to use KD-trees. And some form of bounding boxes should be trivial to add.
    
  Program hierarchy
  -----------------
  
  * Base:
      Contains some basic modules for abstraction purposes and our abstraction
      over Shapes.
      
  * Data:
      Contains the basic data types and data libraries, Vector and
      Transformation are an interface to GlomeVec. Range handles the intervals
      for the CSG.
      
  * GML:
      All modules for parsing and evaluating GML code, including ToRenderObject
      that translates the GML scene structure to our internal representation.
      
  * Renderer:
      Contains all the source for the actual raytracing on our internal data
      structure. IlluminationModel contains our special lighting model and all
      the other modules should be equally self-explanatory. 
      
  Personnel deployment
  --------------------
  
  * gml: Bram and Ruud
  * ppm: Bart
  * textures: Bram
  * brooming: Alessandro
  * renderer: everyone

  Directory Structure
  ===================

  bin/        Scripts used by our buildserver (see bin/README)
  doc/        Some project reports
  src/        The actual ray tracer source
  www/        The website hosted at http://projects.spockz.nl/projects/afp2009/
    


  IRC
  ---

  Join #teamtherayteam on irc.freenode.net



  Bug Tracker
  -----------
 
  http://redmine.projects.spockz.nl/



  Haddock Documentation
  ---------------------

  http://projects.spockz.nl/projects/afp2009/doc/

Topic attachments
I Attachment Action Size Date Who Comment
elsegz RayTracer-1.0.1.tar.gz manage 385.3 K 13 Apr 2010 - 22:08 BartSpaans  
elsegz RayTracer-1.0.2.tar.gz manage 385.3 K 13 Apr 2010 - 22:25 BartSpaans  
elsegz RayTracer-1.0.3.tar.gz manage 818.1 K 14 Apr 2010 - 07:50 AlessandroVermeulen The same as 1.0.2 but with our test cases
elsegz RayTracer-1.0.tar.gz manage 385.3 K 13 Apr 2010 - 22:06 BartSpaans  
pngpng chess.png manage 847.8 K 13 Apr 2010 - 20:11 RudyKoot  
pngpng fractal+34.png manage 44.7 K 24 Mar 2010 - 06:25 BartSpaans  
movavi globe.avi manage 1003.1 K 13 Apr 2010 - 21:39 BartSpaans