Skip to content

champi-dev/shit

ย 
ย 

Repository files navigation

๐Ÿ’ฉ S.H.I.T. - Super Hyper Interactive Turd

"Just because you can, doesn't mean you should. But here we are." - Every developer on this project

A groundbreaking 3D visualization that answers the age-old question: "What if we used cutting-edge web technologies to render poop?" This masterpiece pushes the boundaries of what's socially acceptable in software engineering.

3D Visualization TypeScript React Test Coverage Maturity Level

๐Ÿšฝ Why This Exists

In a world full of productivity apps, social networks, and life-changing software, we asked ourselves: "What does humanity really need?" The answer was obvious. A meticulously crafted, scientifically accurate, high-performance turd simulator.

๐ŸŒŸ Features That'll Make You Flush With Pride

  • ๐ŸŽจ Artisanal Craftsmanship: Each pile is procedurally generated with love, care, and questionable life choices
  • ๐ŸŒช๏ธ Realistic Physics: Watch in awe as our creation obeys the laws of gravity (because even virtual poop can't escape physics)
  • ๐ŸŽฎ Interactive Controls: Rotate, zoom, and contemplate your life decisions in full 3D
  • ๐ŸŒˆ Dynamic Lighting: Because if you're going to render excrement, it might as well be beautifully lit
  • ๐Ÿงช Scientifically Accurate: Based on extensive research we definitely didn't make up
  • ๐Ÿ“ฑ Responsive Design: Looks like shit on every device! (That's the point)
  • โ™ฟ Accessible: Everyone deserves equal access to digital dung

๐Ÿ› ๏ธ Tech Stack (The Tools of Our Shame)

  • React 19.1 - Because even poop needs a modern framework
  • Three.js 0.177 - Making shit look good since 2010
  • TypeScript 5.8 - Type-safe turds
  • Vite 6.3 - Building shit faster than ever
  • Vitest - Testing our crap so you don't have to
  • ESLint & Prettier - Even poop code should be clean

๐Ÿ“ฆ Installation (At Your Own Risk)

  1. Question your life choices:
echo "What am I doing with my life?"
  1. Clone this monument to human achievement:
git clone https://github.com/champi-dev/shit.git
cd shit
  1. Install dependencies (and lose a bit of your soul):
npm install
  1. Start the development server:
npm run dev
  1. Open http://localhost:5173 and witness glory

๐Ÿงช Testing (Because Quality Matters)

We maintain 88% test coverage because perfection is overrated:

npm test                 # Run tests
npm run test:coverage    # See how well we've tested this crap

Why not 100% coverage?

Because some things in life shouldn't be tested. Also, testing WebGL in Node.js is harder than explaining this project to your parents.

๐Ÿš€ Deployment (Share Your Shame)

Deploy to Vercel (Recommended)

npm i -g vercel
vercel

When Vercel asks "What's your project about?", just say "3D visualization" and change the subject.

Deploy Anywhere Else

npm run build

Then upload the dist folder to any static host that's willing to accept it.

๐Ÿ“ Project Structure (The Anatomy of Digital Dung)

shit/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ components/
โ”‚   โ”‚   โ”œโ”€โ”€ DogWasteVisualization.tsx  # The star of the show
โ”‚   โ”‚   โ””โ”€โ”€ *.test.tsx                 # Proof we're professionals
โ”‚   โ”œโ”€โ”€ test/
โ”‚   โ”‚   โ””โ”€โ”€ setup.ts                   # WebGL mocks and tears
โ”‚   โ””โ”€โ”€ App.tsx                        # The app that started it all
โ”œโ”€โ”€ public/                            # Empty, like our souls
โ”œโ”€โ”€ CONTRIBUTING.md                    # For fellow masochists
โ””โ”€โ”€ README.md                          # You are here

๐ŸŽจ Technical Details (For the Nerds)

The Sacred Geometry

Our proprietary P.O.O.P. algorithm (Procedurally Optimized Organic Piles) generates:

  • 2.5 Spiral Rotations: The golden ratio of turd topology
  • Variable Radius: From 0.3 units (thicc) to 0.1 units (tapered perfection)
  • Organic Wobbles: Because nature isn't perfect, and neither is our code
  • Realistic Bulges: Stop giggling, this is science

Material Science

  • Primary Palette: #5D4037 (Mahogany Mistake)
  • Shadow Tones: #3E2723 (Regretful Brown)
  • Highlight Variations: #6D4C41 (Questioning Umber)
  • Surface Properties:
    • Roughness: 0.6 (Like sandpaper, but worse)
    • Metalness: 0.05 (Slightly shiny, deeply disturbing)
    • Clearcoat: 0.3 (That fresh, wet look nobody asked for)

Performance Optimizations

Because if you're going to render poop, render it at 60 FPS:

  • Geometry cached with useMemo (remember the shit, don't rebuild it)
  • Efficient vertex generation (every vertex counts)
  • Shadow mapping (even poop casts shadows)
  • Proper Three.js disposal (clean up after yourself)

๐Ÿค Contributing (Join the Movement)

Found a bug? Want to add features? Questioning your sanity? Perfect! Check out CONTRIBUTING.md for guidelines on making this project even shittier.

Quick Contribution Guide:

git checkout -b feature/corn-kernel-mode
# Make your "improvements"
git commit -m "feat: add scientifically accurate corn kernels"
git push origin feature/corn-kernel-mode
# Open a PR and question everything

โš–๏ธ Code of Conduct

  1. Be respectful (even though we're making poop jokes)
  2. No actual toilet humor (we have standards... low ones, but still)
  3. Test your shit (literally)
  4. Document your crap

๐Ÿ† Hall of Fame

Contributors who've sacrificed their dignity for this project:

  • @champi-dev - The Architect of Excrement
  • You? - Join us in infamy

๐Ÿ“„ License

ISC License - "I Seriously Coded this"

Free to use, but good luck explaining it at your next job interview.

๐Ÿ™ Acknowledgments

  • My therapist, for listening
  • The Three.js team, who definitely didn't intend their library for this
  • Stack Overflow, for answering "how to render realistic poop" without judgment
  • Energy drinks, for making this possible
  • Our users, who have even less to do than we do

๐Ÿค” FAQ

Q: Why?
A: Why not?

Q: No, seriously, why?
A: Art doesn't need a reason.

Q: Is this a joke?
A: The code is production-ready. The life choices are questionable.

Q: Can I use this in production?
A: You can, but your users might have questions.

Q: What's next?
A: VR support. Full immersion.

๐Ÿ“ž Support

If you need help with this project, we recommend:

  1. Clearing your browser history
  2. Going outside
  3. Calling a friend
  4. Literally anything else

Remember: We're not just engineers. We're artists. Artists who've made questionable decisions, but artists nonetheless.

Made with ๐Ÿ’ฉ by developers who should know better

โญ Star this repo if you've lost all hope in humanity!

About

shit

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 94.1%
  • JavaScript 3.5%
  • HTML 1.4%
  • CSS 1.0%