Type-safe(r) model of geometry in 3D graphics

dc.contributor.authorDahlström, Johannes
dc.contributor.departmentfi=Tietotekniikan laitos|en=Department of Computing|
dc.contributor.facultyfi=Teknillinen tiedekunta|en=Faculty of Technology|
dc.contributor.studysubjectfi=Tietojenkäsittelytieteet|en=Computer Science|
dc.date.accessioned2026-06-15T19:32:21Z
dc.date.issued2026-06-02
dc.description.abstractThis thesis investigates the use of type-level techniques for reducing programming errors in 3D graphics programming, in particular as relates to the representation of geometry and coordinate transformations. Existing theoretical and practical work on the subject is fairly scarce, and a review of several popular 3D programming APIs reveals that none attempt to alleviate or prevent such errors either at runtime or compile time. A case study of Retrofire, a software 3D rendering library written in the Rust programming language, is presented. Retrofire employs generic types (parametric polymorphism), traits (type classes), and tag (phantom) types to rule out many of the identified programming errors at compile time, with a goal of minimal or zero impact on runtime performance. The library is evaluated from the viewpoints of performance and developer experience. The conclusion is that the API is useful and helps prevent bugs in real-world programming, but more experience in writing complex applications with Retrofire is required for deeper understanding of its ergonomics. The library also appears to attain its goal of minimal performance overhead compared to a more conventional API; questions requiring further study include optimal memory management and use of SIMD vector operations.
dc.format.extent124
dc.identifier.urihttps://www.utupub.fi/handle/11111/61991
dc.identifier.urnURN:NBN:fi-fe2026061569971
dc.language.isoeng
dc.rightsfi=Julkaisu on tekijänoikeussäännösten alainen. Teosta voi lukea ja tulostaa henkilökohtaista käyttöä varten. Käyttö kaupallisiin tarkoituksiin on kielletty.|en=This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.|
dc.rights.accessrightsavoin
dc.subject3D
dc.subjectrendering
dc.subjectgeometry
dc.subjecttype systems
dc.subjecttype safety
dc.subjectRust
dc.titleType-safe(r) model of geometry in 3D graphics
dc.type.ontasotfi=Pro gradu -tutkielma|en=Master's thesis|

Tiedostot

Näytetään 1 - 1 / 1
Ladataan...
Name:
Dahlstrom_Johannes_opinnayte.pdf
Size:
976.85 KB
Format:
Adobe Portable Document Format