What distinguishes live-shapes from normal shapes?

Out of curiosity, does anyone know how Photoshop figures out what path or shape has the live-editing features? I’m talking about for example the corner rounding handles you get when you draw a path with the rectangle path tool.

When you draw a rectangle using the pen tool, those features aren’t available. I thought I’d find some flags in the internal Descriptor Object, however when I create a 3x3 square with the pen tool and with the rectangle tool and compare the results via Alchemist, the Descriptors are 100% the same.
I guess Photoshop has some hidden fields for identifying live-editable paths? :thinking:

I see a difference and I think this is about “keyOriginType”

Yep, I realised that’s the relevant part a few moments ago when I completed the types for the LayerDescriptor.

However, if you just draw a path without converting it to a shape, it doesn’t have any layer information.
Still, there’s a differentiation between rectangle paths (live-editable) and hand-drawn paths :thinking:

Sure there is. As far I know “keyOriginType” exists only for shapes made by the fancy smart tools.

Path without fill is not shape and not layer. Solid color layer without vector mask is also not a shape.

I know, but just a path alone can also have or not have these “smart handles”:


According to Alchemist, the only difference is the ID:

Document Descriptor also doesn’t show a difference.

I assume for paths that haven’t been converted to shapes yet, the Photoshop Application has some hidden flags that are not scriptable to recognize those paths that can be live-edited…

Ok got it. In such a case I am not sure if our occult knowledge is good enough to solve that mystery. You could bind-shot some hidden properties names.

I could possibly export it as a custom shape in the shape preset file and see if that is preserved there and how binary data changed in order to get some idea about path structure.

Clever idea, but I just made a small test and tried to save it as a custom shape, then draw the custom shape: The smart handles are gone, so this live-editing is lost during this process