Skip to content

Transform and Selections #82

@foxnne

Description

@foxnne

@ZackeryRSmith

Reasoning

This issue is to discuss the selection + transformation actions within Pixi and try to determine the best way forward as far as offering features and hopefully making things easier to understand.

The original suggestion was to add Transform as a tool, but after thinking, I think it doesn't really fit in with the other tools, as in my mind it is similar to Photoshop, and a transformation is an action that is taken upon a selection, rather than something valuable as a tool. As a tool, the only benefit would be to reduce the steps of a transformation to creating a selection and starting the transformation into a single step, but would become a specialized and confusing tool to manage all the different types of selection.

Instead, I propose that we refine the different modes of selection within Pixi, and make the action of transforming those pixels more obvious and intuitive. Note that as of now, I believe the transform controls and widget itself behaves as needed, and this discussion is purely about how we create the selection that moves into the transform.

Selection

As of today, there are 2 main selection systems within Pixi. The first is a broad-selection of grid cells. With the pointer tool active, clicking on a grid cell will set the selection to that grid cell. Dragging the mouse will begin a new rectangular selection of grid cells. When cells are highlighted and selected, beginning a transformation reduces the selected rectangle to the smallest size that will fit the included opaque pixels and moves the pixels to the transform.

Example of cell-based selection

Screen.Recording.2026-02-06.at.10.13.33.AM.mov

This makes for rapid transformations, as selection isn't even necessary to begin the transformation. Simply hovering over a cell also allows transforming that cell, or copy and pasting.

The other selection system is for pixel-perfect selection, using the same logic as the stroke tool. Currently, the brush sizes are shared between the eraser, pencil and selection tools. I believe this causes a lot of headache, as the fine-grained selection tool is much more helpful as a larger sized brush, and often we are using the pencil tool with a single pixel-sized brush.

Example of pixel-based selection

Screen.Recording.2026-02-06.at.9.58.53.AM.mov

This selection is nice for making those fine selections, say of a characters arm to transform and rotate, but can be too slow and clunky to use for rapid transformations.

Proposed changes

I believe the proposed changes should be as follows:

  • Transform remains an action, and we develop some way, perhaps through the quick tools menu, to start a transformation. Or some way to begin a transformation with only the mouse. Currently a transform can only be initiated through a menu option or hotkey, which is quite hidden for a basic action.
  • Selection tool is split into 2 variants: a rectangular selection, which will replace the current default select tool and select a rectangular region of pixels, and then a brush-based fine selection which will be the current selection behavior. This will allow you to select the entire sprite, a rectangular region, or individual pixels. I think if we make the selection tool intuitively combine these, it will cover most use cases nicely.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions