[{"data":1,"prerenderedAt":332},["ShallowReactive",2],{"project-47828896":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":35,"aspects":36,"strip":43,"post_text":46,"what":47,"said":80,"maker_in_thread":179,"shape":192,"grid":196,"attempts":293,"same_week":294,"maker_shows":38,"maker_hidden":324,"reader_version":325,"card":326},"47828896","trellis-mac","Run TRELLIS.2 Image-to-3D generation natively on Apple Silicon","title","Show HN: Run TRELLIS.2 Image-to-3D generation natively on Apple Silicon","https:\u002F\u002Fgithub.com\u002Fshivampkumar\u002Ftrellis-mac","github.com","shivampkumar",1776643636,2026,202,40,289,4366,7,"notable","ai","image-to-3d generation","cli",[24,25,26,27,28],"image to 3d","apple silicon","pytorch mps","trellis","mesh generation","mixed",0.141,{"positive":18,"neutral":32,"mixed":33,"critical":34},6,0,4,17,{"idea":37,"docs":39,"execution":40,"performance":42},{"positive":34,"critical":38},1,{"positive":33,"critical":38},{"positive":38,"critical":41},2,{"positive":33,"critical":33},[44,33,44,33,38,33,33,33,33,33,33,33,33,38,33,33,33,33,33,44,45,33,45,33,45,33,44,45,45,33,44,44,45,33,33,38,33,33,38,44],5,3,"I ported Microsoft's TRELLIS.2 (4B parameter image-to-3D model) to run on Apple Silicon via PyTorch MPS. The original requires CUDA with flash_attn, nvdiffrast, and custom sparse convolution kernels:  none of which work on Mac.\n\nI replaced the CUDA-specific ops with pure-PyTorch alternatives: a gather-scatter sparse 3D convolution, SDPA attention for sparse transformers, and a Python-based mesh extraction replacing CUDA hashmap operations. Total changes are a few hundred lines across 9 files.\n\nGenerates ~400K vertex meshes from single photos in about 3.5 minutes on M4 Pro (24GB). Not as fast a",{"problem":48,"audience":54,"pricing":61,"motivation":62,"time_to_build":61,"stack":68,"openness":77,"stage":78,"team_size":79},{"value":49,"source":50,"evidence":51},"TRELLIS.2 requires CUDA-only dependencies, so it cannot run on Mac","maker",[52],{"id":53},"post",{"value":55,"source":56,"evidence":57},"people doing 3D work locally on Apple Silicon Macs","inferred",[58],{"id":59,"by":11,"text":60},"47830107","I mean I can see that it's niche. Did not expect so many upvotes, but ig it's less niche than I tought If you're not working with 3D on Apple Silicon this isn't relevant to you.…",null,{"value":63,"source":50,"evidence":64},"wanted to run the model locally without cloud GPUs or queues",[65],{"id":66,"by":11,"text":67},"47830091","I thought it was cool and then I found the open issue mentioned above, that convinced me its def something more people want. It IS significantly slower, about 3.5 minutes on my…",[69,73],{"value":70,"source":50,"evidence":71},"PyTorch MPS",[72],{"id":53},{"value":74,"source":50,"evidence":75},"Python",[76],{"id":53},"open_source","launched","unknown",{"praise":81,"objections":98,"requests":119,"questions":138,"alternatives":159},[82],{"value":83,"source":84,"evidence":85},"good porting work replacing CUDA-only kernels with pure PyTorch","commenter",[86,90,94],{"id":87,"by":88,"text":89},"47831308","sebakubisz","This is the kind of porting work I always hope for when I see a CUDA-only release. Have you thought about publishing the gather-scatter sparse 3D convolution and SDPA attention…",{"id":91,"by":92,"text":93},"47831800","sergiopreira","Most 'runs on Mac' ports are a wrapper around a cloud call or a quantized shell of the original model. Going after the CUDA-specific kernels with pure-PyTorch alternatives is the…",{"id":95,"by":96,"text":97},"47834479","paolatauru","solid port. the sdpa swap for sparse attention — did you notice a meaningful quality difference, or is it basically equivalent to the cuda version? curious if the pure-pytorch…",[99,106,113],{"value":100,"source":50,"evidence":101},"much slower than H100, about 3.5 minutes per mesh",[102,103],{"id":66,"by":11,"text":67},{"id":104,"by":11,"text":105},"47830156","i was able to get it in 3.5 mins from a single image on my 24gb m4 pro macbook I'm still working on this to try to replicate nvdiffrast better. Found an open source port, might…",{"value":107,"source":84,"evidence":108},"TRELLIS.2 output quality is weak compared with other image-to-3D models",[109],{"id":110,"by":111,"text":112},"47829724","gondar","Nice work. Although this model is not very good, I tried a lot of different image-to-3d models, the one from meshy.ai is the best, trellis is in the useless tier, really hope…",{"value":114,"source":50,"evidence":115},"high memory use, about 15GB at peak, rules out 8GB Macs",[116],{"id":117,"by":11,"text":118},"47830491","The model needed about 15GB at peak during generation - the 4B model loads multiple sub-models (1.3B each for shape and texture flow). 8GB won't be enough, but both 24GB and 32GB…",[120,127,134],{"value":121,"source":84,"evidence":122},"add examples and images to the landing page",[123],{"id":124,"by":125,"text":126},"47829794","kennyloginz","So much effort, but no examples in the landing page.",{"value":128,"source":84,"evidence":129},"Metal shader implementations for speed",[130],{"id":131,"by":132,"text":133},"47831979","antirez","Great. Potentially can go much faster rewriting it in terms of Metal shaders.",{"value":135,"source":84,"evidence":136},"publish the sparse conv and attention swaps as a reusable toolkit",[137],{"id":87,"by":88,"text":89},[139,146,152],{"value":140,"source":84,"evidence":141},"how much RAM is needed",[142],{"id":143,"by":144,"text":145},"47830291","post-it","How much RAM does this use? Only sitting on 8 GB right now, I'm trying to figure out if I should buy 24 GB when it's time for a replacement or spring for 32.",{"value":147,"source":84,"evidence":148},"can sub-models load in series to fit 16GB",[149],{"id":150,"by":144,"text":151},"47830583","Thanks! Could it conceivably load the sub-models in series rather than parallel? 8 still won't be enough but I wonder if those with 16 could eke something out.",{"value":153,"source":84,"evidence":154},"does it support multi-view input",[155],{"id":156,"by":157,"text":158},"47832578","drbscl","Does it support multi-view input?",[160,168],{"value":161,"source":84,"evidence":162},"Meshy.ai, a paid hosted image-to-3D service",[163,164],{"id":110,"by":111,"text":112},{"id":165,"by":166,"text":167},"47831047","isoprophlex","Meshy is indeed great but I am terminally put off by their alltogether terrible, sleazy, gamified, opaque web UI. It's like aliexpress and a lootbox game had a baby that's into…",{"value":169,"source":84,"evidence":170},"Apple ml-sharp, which creates Gaussian splats rather than meshes",[171,175],{"id":172,"by":173,"text":174},"47833688","pcoyne","I wonder how these outputs compare between Apple Sharp https:\u002F\u002Fgithub.com\u002Fapple\u002Fml-sharp No matter what it is cool seeing so much them work on different devices",{"id":176,"by":177,"text":178},"47835319","vunderba","They’re completely different projects. ML Sharp is designed to create a 3D Gaussian representation of a depicted scene and output a splat file. Trellis generates model files (GLB…",{"comments":180,"answered":181,"key":182},14,8,[183,186,189],{"id":184,"text":185},"47831648","that makes so much sense...I am exploring if I can find someone who has done this well...If not I'll try to do it myself.",{"id":187,"text":188},"47884139","The gather-scatter sparse conv should be fairly generic. Any model using 3x3x3 or 5x5x5 sparse convolutions on voxel grids could use it directly. The main thing that's…",{"id":190,"text":191},"47829963","You're right, thanks for flagging this, let me run something and push images",{"commenters":193,"max_depth":34,"maker_replies":180,"first_comment_mins":194,"lifespan_hours":195},23,87,209,[197,199,201,202,204,206,208,210,214,218,220,223,225,228,230,233,235,238,239,240,244,245,246,247,249,251,253,255,257,259,261,266,271,274,275,277,281,283,284,287,290],[87,33,44,198,88,33],"maker\u002Fpositive\u002Fidea",[184,33,33,200,11,38],"maker\u002Fneutral\u002Fidea",[91,38,44,198,92,33],[187,38,33,203,11,38],"project\u002Fneutral\u002Fidea",[124,41,38,205,125,33],"project\u002Fcritical\u002Fdocs",[190,41,33,207,11,38],"maker\u002Fneutral\u002Fdocs",[209,41,33,207,11,38],"47830255",[211,45,33,212,213,33],"47829384","other\u002Fneutral\u002Fnone","villgax",[215,45,33,216,217,33],"47829504","commenter\u002Fneutral\u002Fnone","refulgentis",[66,45,33,219,11,38],"project\u002Fneutral\u002Fperformance",[221,45,33,216,222,33],"47829591","Reubend",[224,45,33,216,213,33],"47833132",[226,45,33,227,11,38],"47830057","project\u002Fneutral\u002Fexecution",[110,34,38,229,111,33],"project\u002Fcritical\u002Fexecution",[231,34,33,232,11,38],"47829945","project\u002Fneutral\u002Fnone",[165,34,33,234,166,33],"other\u002Fneutral\u002Fdesign",[236,44,33,212,237,33],"47832999","strimoza",[172,32,33,212,173,33],[176,32,33,212,177,33],[241,18,44,242,243,33],"47831235","maker\u002Fpositive\u002Fexecution","petargyurov",[143,181,45,219,144,33],[117,181,33,219,11,38],[150,181,45,219,144,33],[248,181,33,219,11,38],"47884155",[156,250,45,203,157,33],9,[252,250,33,203,11,38],"47884157",[254,250,44,198,157,33],"47936997",[95,256,45,219,96,33],10,[131,258,45,219,132,33],11,[260,258,33,219,11,38],"47884167",[262,263,44,264,265,33],"47851658",12,"project\u002Fpositive\u002Fidea","Kush-7575",[267,268,44,269,270,33],"47830015",13,"maker\u002Fpositive\u002Fnone","jmatthews",[272,268,45,219,273,33],"47830019","serf",[104,268,33,219,11,38],[276,268,33,269,11,38],"47830133",[278,180,38,279,280,33],"47829869","project\u002Fcritical\u002Fidea","hank808",[282,180,33,216,125,33],"47829903",[59,180,33,200,11,38],[285,180,38,229,286,33],"47830401","svnt",[288,180,33,216,289,33],"47832617","atultw",[291,180,44,292,217,33],"47830377","project\u002Fpositive\u002Fnone",[],[295,300,305,310,315,320],{"id":296,"name":297,"points":298,"category":299},"47808268","Smol machines",499,"dev_tools",{"id":301,"name":302,"points":303,"category":304},"47812341","interval-calculator",314,"learning_science",{"id":306,"name":307,"points":308,"category":309},"47847558","VidStudio",301,"creative",{"id":311,"name":312,"points":313,"category":314},"47807809","PanicLock",265,"security_privacy",{"id":316,"name":317,"points":318,"category":319},"47849097","GoModel",217,"infrastructure",{"id":321,"name":322,"points":323,"category":20},"47823460","turboquant-wasm",163,false,"v2",{"id":327,"name":5,"line":6,"ai":324,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":328,"top":18,"kw":329,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":330,"url":9,"mix":331,"praise":83,"objection":100,"sub":21},47828896,0.14,[24,25,26,27,28],"5050100000000100000530303053305530010015",[18,32,33,34],1794036699019]