Are there any fonts that try to compose Unicode Ideographic Description Characters into one character? E.g., ⿰女子 would look like 好. I know the Wikipedia page says "rendering systems are not intended to automatically compose the pieces into a complete ideograph", but this could be helpful for scripts like Sawndip that aren't fully encoded in Unicode. Composing characters overlaid with ⿻ would probably be impossible, but it seems that it shouldn't be hard to at least try to compose characters that are put together just side-by-side with ⿰ ⿱ ⿲ ⿳, especially since something like this is already done for Old Hangul syllable blocks.
The question you are asking is basically, "how do I shape ideographic description sequences (IDS's)"? Text shaping is how the Arabic word خط العائلة becomes خط العائلة.
It is technically possible. I am working on a proof-of-concept that can shape any IDS with a recursion depth of 2 or less. The recursion depth is needed due to limits of the number of glyphs possible in a SFNT-based font.
An SFNT-based font can contain 65535 glyphs. There are 26 presentation forms of a radical shaped in an IDS:
- ⿰: 口_Left; 口_Right.
- ⿱: 口_Above; 口_Below.
- ⿲: 口_LeftOf3; 口_HMiddleOf3; 口_RightOf3.
- ⿳: 口_TopOf3; 口_VMiddleOf3; 口_BottomOf3.
- ⿴: 口_Surrounding; 口_Surrounded.
- ⿵: 口_SurroundingFromAbove; 口_SurroundedFromAbove.
- ⿶: 口_SurroundingFromBelow; 口_SurroundedFromBelow.
- ⿷: 口_SurroundingFromLeft; 口_SurroundedFromLeft.
- ⿸: 口_SurroundingFromUpperLeft; 口_SurroundedFromUpperLeft.
- ⿹: 口_SurroundingFromUpperRight; 口_SurroundedFromUpperRight.
- ⿺: 口_SurroundingFromLowerLeft; 口_SurroundedFromLowerLeft.
- ⿺: 口_OverlaidA; 口_OverlaidB.
If you take the 216 radicals and draw them in all 26 presentation forms, you have 5,616 glyphs. (You can prune the list some by remembering that not all radicals make sense in all presentation forms; for example, 辶 can never be Surrounding or Overlaid.)
You can then use contextual alternates (GSUB) and contextual substitution (GPOS) to begin shaping. Wherever possible, to reduce the number of needed glyphs, you want to merge where possible. So, to shape 務, you want to shape ⿰矛务, not ⿰⿹予丿⿱夂力; even if this means that you need more "radicals".
This is a broad overview; I am working on a proof of concept, and also font standards which would make things easier for font authors. I also wrote a paper on the subject for the Text Shaping Working Group:
Let’s turn this into an answer.
If you wish to create arbitrarily new characters, give GluphWiki.org a try. Make a version in their editor (not flawless, as you’ll have to physically stretch and resize components, but better than lots), save and then extract as one-glyph font. (The symbol will be at GETA MARK [U+3013].) Only watch out for their naming practices and be careful to keep to the national preferences. These glyphs look best with Hanazono fonts, which are basically pre-made from GlyphWiki.org, so try it on. Especially the Hanazono-AFDKO (Google it) versions, as they are well-versed in setting up the variants.
If, however, your wish is to recreate some characters really existing but not in Unicode, first scan BabelStone Han PUA font, it might be there. Works best with BabelStone Han (actually, is part of it), so you might want to install that. Note: only includes PRC forms.
The actual composer of IDS (for lost of well-known non-Unicodes) is the Hanazono Mincho I from the aforementioned AFDKO. Scan its proof (https://github.com/cjkvi/HanaMinAFDKO/releases/download/8.030/HanaMinI.proof.pdf) to learn which are supported. Note that the most well-popularized examples of non-Unicodes are sometimes even in mass-use fonts, such as ⿰氵恩 (only unencoded Korean Name) or ⿳雲⿲雲龍雲⿰龍龍 (taito) are in Source Han sans.