Interface design · 5 min read
Objects, windows and a desktop that belongs to the work
The design argument behind PlatinumSDK: keep the user’s model coherent while allowing the renderer, storage and application architecture to do their own jobs well.
In this article
A document is more than the rectangle around it
A writing application does not become a document simply because it occupies one large window. The document is the work. Its window is a view, and the formatting palette is a tool used on that work. Keeping those concepts separate opens up useful choices: two documents beside one another, a compact reference window, or a palette placed where the writer finds it comfortable.
That separation is one of the ideas behind PlatinumSDK. Platinum Write demonstrates documents and floating tools in separate native windows, with a docked arrangement available as well. Its floating tools step aside when another application becomes active. This is a practical example of the philosophy: a tool can be present when needed without claiming the whole desktop. The browser edition necessarily presents a different windowing experience, so desktop behavior should not be inferred from the browser preview alone.
An object model is a promise to the user
When we describe Platinum as object-oriented in the interface, we mean an intelligible relationship between things people work on. We do not mean every renderer operation must use a particular programming paradigm. A scene, an animation, an image and a document should have names, identities, ownership and understandable actions. A window should make clear which object it is showing and what a command will affect.
Consider a character shared by an animation project and a game. Editing a reusable definition is a different action from adjusting one placed instance. A coherent tool should expose that distinction. The interface could offer Edit source, Make independent copy and Change this instance as separate operations. Calling all three Edit would hide an architectural difference with very real consequences. The underlying object identifiers may be invisible, but the distinction between shared and independent work cannot be.
Data-oriented internals need not feel impersonal
PlatinumSDK is built around Rust and Bevy, with GPU-rendered interfaces and real-time graphics as part of its foundation. That engineering direction supports a different question from the interface model: how should work be represented and processed efficiently? The user should not need to understand an entity query to rename a character or arrange a paragraph.
A useful architecture can keep stable user-facing identities while organizing transient rendering or simulation data around the operations that process it. The hard part is maintaining a clear boundary. Selection, undo, persistence and external references must continue to identify the intended work even if internal data moves or a view is recreated. This is a design responsibility, not a performance claim. GPU acceleration alone does not guarantee a responsive application, and an efficient storage layout does not guarantee a comprehensible one.
Independent windows need rules
Multiple windows are helpful only when their relationships remain legible. A floating formatting palette should show which document it will affect. Closing a palette should not close a document. Activating another document should not leave a stale inspector pretending to describe the previous selection. A compact arrangement should remain possible on a laptop, and a lost window should be recoverable after a monitor is removed.
For an application developer, these are requirements to specify alongside the window API. Decide whether a tool follows the active document, stays attached to one document, or can be pinned deliberately. Give those modes visible differences. Persist positions carefully, constrain restored windows to available displays and provide a simple reset. The desktop should feel arranged by the person using it, with enough support that arranging it does not become a second job.
Cooperation needs more than a common appearance
The creative-suite direction goes beyond exporting a picture from one application and importing it into another. Shared libraries, objects and entire scenes would allow several specialized tools to work on related source material. Animator could edit an animation while Game Creator presents its use in a scene. A video composition could refer to that scene rather than maintaining an unrelated duplicate. Shared project libraries and live cross-application updates remain in development.
Making that reliable requires decisions about versions, permissions, missing resources, changes in progress and conflicts. If one application cannot understand a newer object type, it should preserve what it cannot edit or explain the limitation before saving a destructive conversion. If a source changes while another tool is rendering, the output needs a defined revision. A shared library is valuable because it reduces ambiguity; automatic updates that quietly change a finished deliverable would introduce ambiguity instead.
A framework should make its responsibilities visible
A developer considering an SDK needs to distinguish reusable controls and editors from a finished operating environment. Platinum’s application framework and existing applications are one part of the work. The broader desktop, window manager, relational filesystem direction and eventual OS appliance are a developing product direction. Cross-platform support remains central, while individual features and applications may have different availability.
The useful evaluation is therefore concrete. Pick one document type, build one editor, exercise save and recovery, test focus and keyboard behavior, and measure a representative workload. Add a second view of the same data. Find out whether an application can expose its own commands without giving up its identity. A framework earns confidence when these ordinary integrations work clearly; an ambitious roadmap cannot replace that evidence.
Use the philosophy as an integration checklist
The ambition is a family of applications that feel comfortable together while remaining useful individually. Our design preference is to make the work portable between views and tools, keep ownership understandable, and let the desktop accommodate several activities. These are standards to build and test against, rather than claims that every part of the ecosystem is already complete.
- Name the document or object independently from its current window.
- Distinguish references, instances and copies before implementing drag and drop.
- Make command targets, active documents and pinned inspectors visible.
- Define revision and conflict behavior before promising live cooperation.
- Test keyboard access, recovery and real workloads alongside rendering speed.
Sources & further reading
Primary material behind the discussion and useful places to go deeper. The recommendations and worked examples in this article are our synthesis.
Working through a software or game-development problem of your own?
Talk to Winnitude! ↗Explore our tools ↗