Cammy Stories: a small OCaml webcomic experiment 🐫

Hi everyone,

I’ve been experimenting lately with ways to make technical topics feel a bit more visual and approachable, and somehow that ended up turning into a small hobby project called Cammy Stories.

It’s a collection of short comics about OCaml featuring a camel mascot (“Cammy”) together with some familiar faces from the ecosystem like Dune, OPAM, Merlin and Odoc as characters and teammates.

The idea is not to make formal tutorials or documentation, but rather playful visual explanations of concepts like variants, functors, concurrency, Dune stanzas, OPAM switches, and other OCaml topics I found interesting while learning and exploring the ecosystem.

Most of the images were created through lots of iteration with AI image generation tools. Sometimes the results are surprisingly good, sometimes the text becomes nonsense, and occasionally random hearts appear for no reason. I’ve also kept many of the leftover drafts visible because I thought the process itself was funny and interesting.

Functional programming communities tend to have a reputation for being quite technical and serious, and I sometimes feel that a more visual and community-driven approach could help make some of these ideas feel a bit more approachable. So this is mostly a small experiment in that direction.

Feedback is very welcome, especially since there are probably technical inaccuracies or misleading ideas here and there. Suggestions for future topics, formats or concepts are also appreciated.

At the moment, most pages also include small notes, side comments or short stories about how each comic was created, since the project is still very much in a discussion and experimentation phase.

:link: Live: Cammy Stories
:link: Repo: GitHub - RCHG/cammy: Cammy, the ocaml caml. · GitHub

Hope you enjoy it :two_hump_camel:

4 Likes

I like it :grinning_face_with_smiling_eyes:

I am sure it’s a LOT of hard work.

In my humble opinion this effort doesn’t pay in the end.

The main reason is it looks too much as propaganda.

However i have to admire your work as a great artistic achievement.

Just not my cup of tea.

2 Likes

I think part of what may come across as “propaganda-like” is simply a tendency of current AI image/text models themselves. They often default to overly positive or promotional language and aesthetics, and it is not always easy to steer them away from that completely when generating visual material. Believe me, I am actively trying to make things more objective and educational but is difficult to educate an AI.

For the very first “drafts”, there is admittedly a bit of that tone, although I also do not think it says anything fundamentally untrue about OCaml. Still, I agree that some parts, especially the more ecosystem-oriented pages, can end up feeling a bit too optimistic or idealized, and that is definitely something worth improving.

Interestingly, I had already been thinking something similar before your comment, so I appreciate the feedback. It is an important thing to correct.

Ironically, the largest amount of actual work was probably the website itself, mostly because I do not really know frontend/web development very well. The comics themselves were less “work” and more experimentation, iteration, and curiosity about whether visual storytelling could help make some OCaml concepts feel a bit more approachable.

In the end, this could be probably just a “funny” experiment, and nothing more. But let’s see how it evolves.

1 Like

It is actually funny.

Let it evolve. Don’t stop until you will eventually hit an AI wall.

1 Like

Thanks @SpiceGuid I’ve continued uploading more comics that I already had prepared. There is also a new section called Nightmares, which is intentionally more personal and aimed at expressing visually some of the doubts, frustrations, ecosystem comparisons, or insecurities that OCaml developers themselves may sometimes experience.

The tutorial/didactic side is definitely something that still needs improvement and refinement. Part of the motivation actually comes from educational experiments around comics and computer science teaching, for example projects like Secret Coders, as well as papers such as:
https://arxiv.org/pdf/2109.13197 (even also https://arxiv.org/pdf/2208.12981)

In any case, I really appreciate that you took the time to write here and give feedback.