uiink doesn't need multithreading to perform well. Even complex UIs use only a small portion of a single core.
Avoid design and performance constraints of old technologies that weren't created for modern UX.
Node Based Logic
Use a node system to process data and user input. No coding needed.
Reduced code complexity and improved workflow between designers and developers.
Edit your UI and watch changes take effect in real time.
Fits Your System
Fewer bugs thanks to a stateless design.
Design UIs that work across PC, consoles, and mobile.
Turnaround time for idea to implementation has been a core focus for uiink. Both because it's a feature we value and because we dogfood. Ever since the first working build of uiink, we have used uiink to build itself. Large chunks of UI where thrown away as we iterated on uiink's design. Optimizing how quickly you can build a functional UI became a priority.
If you create a UI with uiink and it has performance issues in your game, we consider it a bug on our end. It's my goal that you should never have to consider performance when building your UI.
Sometimes all you want are a few stock widgets on the screen. When you do we've got you covered with plenty of examples to import from. But where uiink really shines is when you need fine control over every detail in your UI. When you need a truly unique experience, uiink gives you the features you need to create.
Debugging & Testing
Few things are less fun than having to load up a debugger to find an obscure error in your UI logic. uiink's design makes your UI resilient to many kinds of bugs with features like stateless design and strict data-only APIs. For the bugs that do come up, uiink has features for capturing and inspecting snapshots of your UI's state.
The uiink runtime has a small footprint (~3MB binary size) doing it's best to use as little memory and CPU resources as possible.
Read the full data API documentation.