15 cm would be 471 mm circumference, 8 tracks 3770 mm, so 3.8 mm per bit for 1 kBit. Could work. I could even go to 20 cm (Prusa MK3). Stacked cam rolls would create overhangs though (no soluble support yet), so I'd have to create slopes for the upper bits. All automatically generated from a hex file of course...
Optics: Not sure. Maybe mechanical levers with slotted photointerrupters instead of cam switches.
Since it's going to be quite a big cylinder, probably you want to print it in a vase mode, or at least without an infill and top layers, because it would be impossible to print top layer without an infill on cylinder of such a diameter.
If so, you will have an empty spece inside and access to it, so you can put an array of led inside and second array of photosensitive elements outside.
Then you need to use holes instead of indents/bulges for bit encoding.
I think that could allow greater density in comparison to switches and bulges, because you are not limited by the size of the switches nad geometry of cylinder.
My only concern is that SNR may be bad in vase mode even using black filament, due to possible print errors and small holes between the layers.
And holes probably makes printing in vase mode not as useful in this case
Maybe a bigger nozze (like 0.6 or 0.8mm) would help. Or just print in normal mode with relatively thin cylinder wall, but with at least 2 perimeters.
One more thing that came to my mind. It should be possible to add few control bits. Bare minimum would be to add two clock signals, a little out of phase, lets say 45* and 90* after the data.
Then you can use first clock signal to ensure that all switches / fotoelement are in a stable state at the time of reading. In this scenario you would need debouncing circuits only for clock signals.
Having second clock signal you can create an address register using binary counter and then you can effectively copy whole cylinder by just rotating it. Clock signals will do the rest, no need for any control circuit, maybe just a switch pushed by single bulge on the cylinder to stop it from repeating itself.
I guess you could cope with one clock signal bu its easier with two.