Infinite-precision vector documents ----------------------------------- - Background - Existing document formats like postscript are based around 32-bit floats - Not quite IEEE. - Zooms on typical document viewers maxes out at at something between 3x and 16x. - CAD, BIM, etc. utilities would benefit from higher zoom levels. - Editing documents at such zoom levels would present further issues, as some objects specified within would need more bits of precision than others. No single coordinate system can handle everything efficiently with a finite number of bits. - Aim - Prototype a system which does not have restrictions on zoom levels. - Performant at all zoom levels. - Performance not dependent on view of the document: - Big Integer/Float solutions will require more bits to store data further away from the centre of the document, leading to slower calculations at high zoom levels away from the origin. - Method - Develop a simple "document" format - Likely consulting of simple geometry. - Easily rasterized with APIs like OpenGL. - Extend it to support high zoom levels. - A variety of techniques can be investigated. - BigInt/BigFloat coordinates and transformation matrices. - Likely slow, cannot be done on GPU, but conceptually very simple. - Coordinate system "renormalization" - Split document into regions each with their own coordinate system. - (Nested) - Use a quadtree to create these new regions. - When zoomed in such that a region fills the screen, it becomes the "parent" of the view. - During zooming in, values can be converted from parent coords to child coords by dropping the most significant bit of precision, gaining an additional bit of precision in the LSB position. - Reverse for zooming out. - Timeline (proposed) - March/April - Set up a simple document format to experiment on. (Including systems to create, edit and view these documents) - Proposal + Talk (March 13, March 24-28) - Literature review (April 17) - May/June - Revise, complete Lit Review - Implement one or more "infinite precision" systems in our document format - Measure performance, etc. - July/August - Continue experimenting with the document format, other techniques - Begin work on dissertation. - September - Draft dissertation complete (18th) - October - Seminar (Abstract due 9th, Presentation 27th-31st) - Poster (30th) - Final dissertation (23rd) - November - Exams - Corrected dissertation - Sigh of relief - Software, Hardware requirements - IBM-compatible PC with OpenGL-accelerated graphics. - Development will be done under the Linux operating system. - The techniques presented should be portable to other similar systems.