From Manta Wiki
Jump to: navigation, search

Major projects

  • Implement a better plug-in architecture so that arbitrary objects and
  • Complete channel interface with th eability to activate/deactivate channels, remove them, etc.
  • Remove stereo from the main pipeline, and implement it with multiple channels
  • Implement a more general multi-stage pipeline infrastructure with dependencies between stages and arbitrary data-passing between stages (not just images)
  • Implement a distributed load balancing and data handling mechanism using RDMA
  • Implement some form of dynamic classes to enable specializations based on data type

Medium-sized projects

  • Rename fragment to PixelSet or something better
  • Implement CMake for RTSL files
  • Split up main MantaInterface class into multiple interfaces
  • Improve deadlineImageTraverser with better criteria and performance enhancements
  • Implement more idlemodes, such as one that adds samples or global illumination. This will require pipeline reconfigurations or activating/deactivating channels.
  • Implement a Kajiya style pathtracing renderer
  • Scalability testing and improvements
  • Add ability to draw debug rays using cylinders for ray segments
  • Add ability to track stats and draw them on an overlay
  • Investigate need for a callback when the number of works changes
  • Flag raypackets with a common signs
  • Figure out a way to negotiate ray normalization from primitives. Can the preprocess request it and have the camera generate normalized rays if possible?
  • Add a mechanism for tracking average raypacket sizes as a function of type (primary, shadow, secondary, etc.)
  • Add a single-ray interface and use it when there is only one ray left.
  • Pass down attenuation for ray-tree pruning (Isn't this somewhat handled by the importance member of the RayPacket? - Bigler)
  • Port the C-SAFE demo, which would require a volume renderer and a many-sphere acceleration structure
  • Implement a templated generalized acceleration structure for primitives, or bags of just triangles, or many spheres, or ...
  • Separate shading normals from geometric normals, implement bump mapping
  • Separate intersect for shadow rays?
  • Pass down index of refraction to handle nested refraction
  • Implement stack for scratchpad
  • Consider removing texcoordmappers
  • Abort current frame when interactions appear?
  • Add support for sets of cameras - like stereo pairs, cameras for walls of a cave, etc. Interactions apply to all cameras in the set.
  • TiledImageTraverser should pick a good size for square packets. Currently with the default packet size of (32) you end up with 5x5 fragments trying to fill packet sizes of 32x2.
  • Image dumps
  • High quality image dumps.
  • Implement ImageMagic image writer
  • Formally verify the Dielectric code
  • Finish up the python scene reader (SwigInterface/python.cc) for bin/manta.
  • Allow bin/manta to shoot a single debug ray at a given pixel location and exit.
  • Turn jittering on and off from wxManta and XWindowUI.


  • Documentation - create a wiki page for every primitive

Machine ports

  • Port to LANL roadrunner
  • Port to Cray XT3

Self-contained projects

  • Implement Constructive solids geometry
  • Better way to synchronize callbacks without using a crowdmonitor
  • Improve scalability on large CPU-count machines
  • Examine all of the Interface classes for const correctness
  • Implement a tiled image class
  • Implement a Z-order image traverser and a hilbert curve
  • Improve performance of top end, including SSE for non-line packets
  • Implement a new input device, such as a griffin knob or a tablet
  • Implement a double-sided material that chooses between two different materials based on the normal
  • Map phong exponent in metal material. Use a specialization if the exponent is zero (with dynamic classes)
  • Investigate using quaternions for InstanceRT
  • Add new scenes!
  • Port isosurfacing grid code from rtrt