LibrarianLib (portfolio)

Main LibrarianLib page

WORK IN PROGRESS
  • LibrarianLib
    • 4,262,402 downloads
    • particle system
      • (based on Unreal’s Niagra, almost entirely based on what’s shown in the feature highlight livestream)
      • efficient, with nearly zero object allocation simulation and ray-world collision, in order to facilitate tens of thousands of particles with full world collision.
    • reflection based animation of any field
      • including recursive creation of new objects when changing immutable fields (e.g. create a new `Vec3d` when changing its `x`)
      • keyframe animations with custom easings
      • ability to create lerp functions for custom types
    • automatic annotation/reflection-based serialization library
      • generic type serialization
      • type polymorphism (opt-in for efficiency sake)
      • serialize data into existing objects
      • resuses mutable objects if possible (clearing and refilling lists/maps so final list/map fields can be changed)
    • GUI framework
      • data-driven sprite rendering? (9-slice, tiling, etc.)
      • Facade
        • (many parts of the recent refactor were inspired by parts of UIKit I found useful)
        • (the original version was created relatively early in my journey making GUIs, so its hierarchical structure was based on, of all things, HTML)
        • recursive layer-based GUI library
        • stencil masks
        • render-to-texture (both flat and direct)
          • layers can have filter shaders applied
          • alpha and luma masking, normal and inverted, plus different defaults for pixels without a mask layer
          • flatten layers to modulate opacity of an entire collection of them
        • implicit animation
        • simple conversions between coordinate spaces of different components
        • HUD that tracks every built-in HUD element and allows layers to be attached to them (e.g. just able to say “put this icon to the left of the health bar when it’s below 50%” without having to worry about where the health bar is)
      • Pastry
  • LibrarianLib 1.14
    • models:
      • blender exporter to custom obj extension format, allowing skeletal rigging and animation export, plus systems to render these models in the game.