惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

人人都是产品经理
人人都是产品经理
博客园_首页
IT之家
IT之家
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Vercel News
Vercel News
美团技术团队
D
Docker
WordPress大学
WordPress大学
T
Tailwind CSS Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
The Cloudflare Blog
Y
Y Combinator Blog
F
Fortinet All Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
G
Google Developers Blog
爱范儿
爱范儿
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
月光博客
月光博客
MongoDB | Blog
MongoDB | Blog
S
SegmentFault 最新的问题
GbyAI
GbyAI
Hugging Face - Blog
Hugging Face - Blog
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
<image-3d> — drop-in 3D photo embed
mnorris · 2026-05-15 · via Hacker News: Show HN

Web Component

A web component that turns a 2D image URL into an interactive 3D embed. Drag to rotate, pinch to zoom.

Install

Drop these two lines into any HTML page.

<script src="https://mukba.ng/image-3d/embed.js" defer></script>
<image-3d src="/your-photo.jpg"></image-3d>

Add it with Claude Code

Paste this prompt into Claude Code in your project directory.

Add the <image-3d> web component to this project.

Reference docs: https://mukba.ng/image-3d/docs/

Steps:
1. Add this script tag once, in the <head> of the main HTML template
   (or shared layout):
   <script src="https://mukba.ng/image-3d/embed.js" defer></script>
2. Then ask me which photo I want to convert. To swap one, replace its
   <img> with:
     <image-3d src="/same/photo/url.jpg"></image-3d>
   It's a standard custom element — no wrapper needed in React/Vue/
   Svelte/etc.
3. Show me the diff before committing.

Attributes

Set on the <image-3d> element itself.

AttributeDescription
src requiredSource image URL. The mukba.ng worker fetches this and generates the 3D artifacts (mesh preview + splat).
width / heightExplicit pixel dimensions. Overrides the default 600px / 80vh caps. Bare numbers are interpreted as px; full CSS values (50%, 40vw) work too.
loading="lazy"Defer the fetch until the element scrolls near the viewport.
nobrandHide the "mukba.ng" attribution pill in the bottom-right corner.

CSS custom properties

The element uses shadow DOM, so the host page's CSS can't bleed in. Set these on the host element to restyle.

PropertyDefaultNotes
--image-3d-max-width600pxHard cap on rendered width.
--image-3d-max-height80vhHard cap on poster height (and thus overall height).
--image-3d-radius8pxHost corner radius. Set 0 for sharp.
--image-3d-width / --image-3d-heightautoSet by the corresponding attributes; you can also set these directly via CSS.

Lifecycle events

The element dispatches CustomEvents on itself. Listen the way you would on any DOM element.

const el = document.querySelector('image-3d');
el.addEventListener('image-3d:loading',  (e) => console.log('start'));
el.addEventListener('image-3d:progress', (e) => console.log('progress', e.detail));
el.addEventListener('image-3d:ready',    ()  => console.log('ready'));
el.addEventListener('image-3d:error',    (e) => console.warn('error', e.detail.error));

Behavior notes

  • Mesh first, splat second. The small mesh preview (~11KB) paints almost immediately; the larger splat crossfades over once it loads.
  • Long-press to reset. Press and hold without dragging for a blue scrim; release to recenter the camera. Pinch / scroll to zoom; drag to orbit.
  • Shadow DOM. Nothing on the host page can override the embed's internal styling unless you use the documented CSS custom properties.
  • Graceful failure. If the worker fails or returns garbage, the poster image stays visible and an image-3d:error event fires. The user always sees something.