explaingit

pablogdcr/daily-crumple

Analysis updated 2026-05-18

87TypeScriptAudience · developerComplexity · 4/5Setup · moderate

TLDR

A satirical newspaper app whose real feature is realistic real-time paper physics: folding, stretching, and crumpling pages by touch.

Mindmap

mindmap
  root((Daily Crumple))
    What it does
      Real time paper folding
      Stretch and crumple gestures
      Tear and throw animation
    Tech stack
      React Native
      Skia
      Reanimated
      Expo
    Use cases
      Study advanced UI animation
      Learn shader based effects
      Explore gesture driven interfaces
    Audience
      Mobile developers
      UI animation enthusiasts

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Study a real example of shader based, physically simulated touch animations built with Skia and Reanimated.

USE CASE 2

Learn techniques for snapshotting a live view and manipulating it as a texture in real time on mobile.

USE CASE 3

Reference the gesture arbitration code for building an app with swipe, scroll, and tear interactions together.

What is it built with?

React NativeSkiaReanimatedGesture HandlerExpo

How does it compare?

pablogdcr/daily-crumplepedrofariasx/deepsproxyryensx/opencodex
Stars878686
LanguageTypeScriptTypeScriptTypeScript
Setup difficultymoderateeasymoderate
Complexity4/52/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires Expo prebuild and running a native iOS build since Expo Go does not support the custom fonts and native modules used.

No license information is stated in the README.

In plain English

The Daily Crumple is a mobile app that presents itself as a satirical newspaper, but its real point is a set of highly detailed touch animations that make the on screen page behave like an actual physical sheet of paper. Instead of playing a pre made video clip when you interact with a page, the app takes a live snapshot of what is on screen the moment you touch it, then bends, folds, and stretches that image in real time as your finger moves, redrawn every single frame. Swiping between articles peels the current page off the stack the way pulling on real cloth would, with the fold shape depending on where on the page you grabbed it, so no two swipes look identical. Scrolling past the top or bottom of an article makes the sheet stretch into a wavy crumple against the edge before it relaxes back flat once you let go. Tearing off an article you do not want to read folds the corner over an advancing crease, gathers the whole page into a crumpled paper ball, and throws it into a wastebasket that rises up to catch it, revealing the next article underneath as though the pages were physically stacked. That crumpled ball is not a canned animation either. The page is split into eighty small triangular pieces, each one mapped onto a facet of a distorted sphere shape, and every one of those pieces is individually rotated, lit, and positioned every frame as it travels from its spot on the flat page to its spot on the ball. The project is built with React Native using the Skia graphics library for the custom shader based rendering, Reanimated to drive the animation frame by frame, and Gesture Handler for the touch interactions, on top of Expo. The articles inside are fictional and written as satire, and the app currently only runs by building it yourself, not through Expo Go.

Copy-paste prompts

Prompt 1
Explain how the crinkleShader.ts file creates the swipe fold effect anchored to the point where the user grabs the page.
Prompt 2
Walk me through how the page-to-ball transformation in paperBallMesh.ts maps flat triangles onto a sphere shape.
Prompt 3
Help me set up this project locally with Expo prebuild since Expo Go isn't supported.
Prompt 4
How does useSnapshot.ts avoid drawing a stale captured image while the crumple animation is playing?

Frequently asked questions

What is daily-crumple?

A satirical newspaper app whose real feature is realistic real-time paper physics: folding, stretching, and crumpling pages by touch.

What language is daily-crumple written in?

Mainly TypeScript. The stack also includes React Native, Skia, Reanimated.

What license does daily-crumple use?

No license information is stated in the README.

How hard is daily-crumple to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is daily-crumple for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.