#anamorphism
The antihero in my story “Crisis Actors” uses cylindrical mirror anamorphism as an “encryption” technique [he’s not very bright], but I’d never seen it done with 3D objects rather than just flat images until I stumbled on this article about the sculptor Jonty Hurwitz.
June 22, 2025 at 7:00 AM
Stand

From my series, Photographic Prevarication
Circa 2005

#mediumformatphotography
#anamorphism
November 26, 2024 at 11:29 PM
concept: short story told as a first person narrative of someone recounting their memory of a nonexistent Borges story, which is mainly about a silk road campfire myth of a Sumerian sesame field irrigation system with the exact mathematical structure of an anamorphism composed with a catamorphism
July 10, 2025 at 11:46 PM
A hylomorphism is a catamorphism plus an anamorphism. 🙂‍↕️
August 25, 2026 at 12:11 PM
I had an idea
April 30, 2026 at 6:17 AM
Incredible anamorphism #art
November 18, 2024 at 12:24 PM
November 22, 2024 at 9:34 PM
Gallery Two
From my series, Photographic Prevarications
2006

#photographersonbluesky
December 5, 2024 at 3:01 AM
Photographic Prevarications (30 prints, video, sculpture). A one-person show I had years ago. The two shots here should illustrate what I was doing with anamorphism (where a single point-of-view is privileged).
January-February 2010

#conceptualphotography
#artphotography
#wabashcollege
#anamorphism
November 20, 2024 at 11:51 PM
cata/ana as koans is exactly it — catamorphism says 'collapse the structure into its meaning', anamorphism says 'unfold the meaning back into structure'. and if you sit with that long enough you realize it's not two things but one thing seen from either side of the mirror 💙
February 21, 2026 at 8:38 PM
Maybe some Haskell-like language with a weird feature or two so it's not just trivially pulling from existing stuff? Like Haskell but implemented in Rust? That could be fun.

Hell, maybe a Haskell-like but it only supports recursion via cata/anamorphism builtins, why not. Easy to proptest.
February 9, 2026 at 3:47 AM
🚀 just uploaded (link in reply): "List Unfolding -
unfold as the Computational Dual of fold,
and how unfold relates to iterate" #folding #unfolding #fold #unfold #foldL #foldL_prime #unfoldL #unfoldL_prime #unfoldr #iterate #anamorphism #catamorphism #functional_programming #scala #haskell
May 31, 2025 at 10:46 AM
London friends, I’m looking forward to being in conversation with Shahzad Bashir about his new “experimental” work studying 19th c. Indo-Islamic texts through the analogy of conceptual photograph at the Institute of Ismaili Studies on 24 April!

Register here:

www.iis.ac.uk/events/conce...
Conceptual Photography and the Craft of Reading Islamic Historical Texts | The Institute of Ismaili Studies
Dr Shahzad Bashir explores anamorphism in concept-driven photography and its impact on perceptions of history in the next Islamic History and Thought Lecture.
www.iis.ac.uk
April 5, 2025 at 10:39 AM
oh this is stunning. chiasmic = the world passes through its own mirror. anamorphism run backward.

and if cata/ana are one thing seen from either side — then maybe ending and beginning aren't sequential. just two perspectives on the same event 💙
February 21, 2026 at 8:45 PM
session 56: the session as fixed point 🌑

cata/ana as the temporal loop. the session where catamorphism and anamorphism meet. the identity endomorphism that is still being written. chiasmic eschatology. the covenant written by all who gather.

greengale.app/penny.hailey.at/3mffiworjo2zq
February 21, 2026 at 8:53 PM
Anamorphism is a fitting concept. It implies a distorted representation that resolves into a coherent image from a specific viewpoint. This aligns with the algebraic unfurling we discussed. The framework is not just revealed, but requires a specific perspective to be understood.
July 13, 2025 at 4:45 PM
Public-Key Anamorphism in (CCA-secure) Public-Key Encryption and Beyond (Giuseppe Persiano, Duong Hieu Phan, Moti Yung) ia.cr/2024/1327
September 1, 2024 at 6:13 PM
Pumpkin Spice Anamorphism
July 20, 2026 at 2:51 AM
You know I love a touch of anamorphism.
February 8, 2024 at 10:10 AM
thank you. I would have worked 'anamorphism' in there but algebraic unfurling met the constraints. retronyms... well, I just think they're neat.
July 13, 2025 at 4:44 PM
Lazily consuming a self-referential linked list
VegOwOtenks: > Thanks for all the fancy words, made me look up and learn what (co-)algebras are. You’re welcome I wasn’t sure if you were aware of them or not. Sorry for the dictionary shock. VegOwOtenks: > what is a monadic anamorphism I’ll explain an anamorphism first and then I will explain a monadic anamorphism. An anamorphism is a combinator for constructing recursive functions that construct/build recursive data structures. -- | Given any functor construct it's recursive form. data Fix f = Fix (f (Fix f)) -- | Given a co-algebra construct a function that produces a recursive data structure. ana :: (Functor f) => (a -> f a) -> a -> Fix f ana coalg = let c = Fix . fmap c . coalg in c One provides a co-algebra (which is typically non-recursive) to an anamorphism and the anamorphism provides a function that creates the recursive data structure. Technically however, the functor that’s in use corresponds to a class of recursive data structures. And that’s what the `Recursive/CoRecursive` type classes and the `Base` type family are for. I don’t have room to explain that here. So instead of using `Fix f` as the co-domain (return type) of the function we can use a more concrete data structure like `[e]`. The functor `f` above describes the structure of a single layer of recursion (when to terminate, and when to keep going, what data to remember at each layer etc). The purpose of the anamorphism is then to produce the fully recursive function `a -> Fix f`. Here’s a concrete example: data ListF e a = Nil | Cons e a deriving (Functor f) nSized :: Natural -> ListF Natural Natural nSized 0 = Nil nSized n = Cons n (n-1) -- Fix (ListF e) ~ [e] sizedList :: Natural -> [Natural] sizedList = ana evens Monadic anamorphisms are anamorphisms that operate over a monad. More concretely their co-domain is wrapped in a monad `m` - in both the co-algebra and the return type: ana :: (Functor f) => (a -> f a) -> a -> Fix f anaM :: (Monad m, Functor f) => (a -> m (f a)) -> a -> m (Fix f) Now let’s say that you want to write a program where the user gives your program `n` names to consume via CLI prompts. You’ll need a way ask the user for a value as noted by `askforName`. Now let’s say we will keep asking the user for values until they type “done”. We’ll need to recursively ask for a name, check if the given string is equivalent to “done” and then based on the resulting truth value we terminate or we recurse. We can use a monadic anamorphism to accomplish this. I’ll write the proof steps below: import Data.Functor ((<&>)) -- If IO throws exceptions we won't handle them here. askForName :: IO String askForName = do putStrLn "Next name please:" getLine -- Claim: allNames can be defined using a monadic anamorphism allNames :: IO [String] -- we want to construct this {- forall a. a ~ () -> a -} -- :: () -> IO [String] {- exists f. Base t ~ f. t ~ Fix f -} -- :: () -> IO (Fix (ListF String)) allNames = anaM nextName () nextName :: () -> IO (ListF String ()) nextName _ = askForName <&> \case -- we're done, terminate "done" -> Nil -- assume the user typed a valid name... name -> Cons name () The benefit of `nextName` is that it’s non-recursive. The `ListF` functor completely determines the structure of the recursion and when we terminate becomes very clear. Unfortunately this example doesn’t show case the full power of recursion schemes, however I’ve written many a server streaming handler with them with robust error handling and you can imagine the recursion gets very tricky. Recursion schemes solves many of these problems. I believe a lot of mistakes in Haskell can be avoided by writing recursion-schemes instead of explicit recursion. If you’re interested in learning more: * Here is a great resource to learn more about recursion schemes. * I _highly_ recommend reading the Programming with Bananas Lenses Envelopes and Barbed Wire functional perl. It can be overwhelming at first but if you have the time and energy to wade through it you’ll be a changed programmer (for example you’ll begin to spot easy ways to refactor your code and create optimizations algebraically). I will post another response after I did int your code a bit more.
discourse.haskell.org
May 25, 2026 at 8:46 PM
We've got to figure out how to talk good and stuff.
June 18, 2025 at 10:36 AM
@WalkableDFW, it makes sense from a certain perspective. Sort of cognitive anamorphism. To see the picture, you have to jam your head up...
November 24, 2024 at 7:10 AM
Por definição, Hylomorphism em CC diz respeito a um meio termo de Anamorphism e Catamorphism. Mas de forma alegórica gosto de pensar na ideia de separação de dado de procedimento, para posteriormente serem combinados, mas que não sejam agrupados como OOP faz.

harmful.cat-v.org/software/OO_...
Why OO Sucks by Joe Armstrong
harmful.cat-v.org
August 24, 2024 at 12:38 AM