on Java edition, there's an entity called "block display", which can be used to make blocks with different shapes and sizes and whatnot (however from what ive tested it only works if the command is done through a command block)
An easy way to make these is via BDStudio: https://eszesbalint.github.io/bdstudio/editor