My hometown has a thriving art community. Sadly, while I cannot say I'm really engaged with it, it makes me very happy that it exists.
This 3D printing "thing" doesn't quite fit the theme of having people create half hearts to be joined together and displayed, but it's what came into my head when I heard about the town's art project. It seemed like this could be hung on the inside of the glass panel of our front door, to at least show support for the project.
Most of the 3D projects at this site are primarily done using OpenSCAD, but I'm also a big fan of Inkscape. This project turned out to be a very nice opportunity to blend the use of both tools.
The project went through several iterations. That's normal. A circle design was actually the second try because I was not happy with how the first attempt at a heart looked. It was giving me grief getting the inner heart cut out from the outer. I was eager to push forward with the concept, so I switched to a circle. It is very easy in Inkscape to make two circles and delete the smaller one from the outer to make a ring. I don't even think I kept the file for the first heart effort.
The text tool in Inkscape allows quick adjustment of the distance between letters, which is called "kerning". It should be obvious that the letters and digits need to connect to the outer ring and also to one another so that the whole design works. The text characters of "LOVE" or "01760" cannot just be separate, or the 3D version won't hold together. To move the characters so they overlap needs negative kern value. In typical fashion, trial-and-error got the job done.
Making the heart begins with a balanced set of points which just barely look like a heart, maybe a robotic one. Making it rounded involves using the node control to turn all but the two middle points/nodes into smooth nodes. Then fill the heart (I chose black), duplicate the heart and reduce it evenly and finally fiddle with the node until you get the heart "right".
Eventually, a version of the heart was satisfactory. Then came the loop at the top to make it easy to hang. Finally, add the text with all the kerning and positioning fiddle needed. Ultimately, I liked the wave across the middle, but you can (and should) experiment as you wish.
Switching to OpenSCAD
One of the great things about FLOSS/FOSS/open source software is the potential for effective interaction among several programs. Nothing is secret or locked down. Scalable Vector Graphics (SVG) is the standard file storage of Inkscape, Converting the paths of SVG into polygons for OpenSCAD was a challenge taken on by programmer Dan Newman. He developed an extension for Inkscape. I love the results, and have used the extension in many projects. Then we easily also make an STL file for a 3D printer. Programs and programmers working together, just like the residents of my fantastic town.
After importing the Inkscape-generated scad file into OpenSCAD, all we have to do is perform a full render followed by an export of the STL file for the printer. Once there, it's just a short 20 minutes or so for a print of the basic size. Of course it is easy to adjust the size, either in OpenSCAD or using your preferred slicer software, or even to do a dozen at a time (a bit over an hour).
An appropriate length of filament fishing line strung through the top, et voila, something to hang in a window to catch the light.
SCAD files for study/modification and STL files for quick printsloveheart-dev4.svg - a file to help you as a beginning for your own design.
----- For my lovely local community -----
loveheart5.scad - basic single small print as generated by the Inkscape extension
loveheart5.stl - ready for a basic print with your printer or ask at the Morse Institute library
loveheart5-12.stl - a printer full of 12 hearts