[{"data":1,"prerenderedAt":396},["ShallowReactive",2],{"project-44870137":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":27,"sentiment":28,"stance_mix":29,"scored_comments":34,"aspects":35,"strip":41,"post_text":44,"what":45,"said":93,"maker_in_thread":194,"shape":207,"grid":210,"attempts":358,"same_week":359,"maker_shows":33,"maker_hidden":388,"reader_version":389,"card":390},"44870137","Tilf","An offline, open‑source desktop Pixel Art Editor in Python","title","Show HN: I built an offline, open‑source desktop Pixel Art Editor in Python","https:\u002F\u002Fgithub.com\u002Fdanterolle\u002Ftilf","github.com","danterolle",1754950913,2025,214,63,287,3837,8,"notable","creative","pixel art editor","desktop_app",[21,24,25,26],"offline drawing","python pyside6","open source","loved",0.267,{"positive":30,"neutral":31,"mixed":32,"critical":33},6,7,0,1,14,{"docs":36,"idea":37,"design":39,"execution":40},{"positive":32,"critical":32},{"positive":38,"critical":33},2,{"positive":33,"critical":32},{"positive":38,"critical":32},[32,32,42,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,43,33,32,32,43,32,42,43,32,42,32,43,32,32,32,32,42,42,43,43,42,43],5,3,"It requires no registration, no installation, and no configuration. Just run it on any computer and start drawing freely.",{"problem":46,"audience":52,"pricing":53,"motivation":58,"time_to_build":52,"stack":67,"openness":90,"stage":91,"team_size":92},{"value":47,"source":48,"evidence":49},"Lets people draw pixel art without accounts, installs, or configuration.","maker",[50],{"id":51},"post",null,{"value":54,"source":55,"evidence":56},"free","inferred",[57],{"id":51},{"value":59,"source":48,"evidence":60},"Maker wanted a simple drawing tool that runs with double-click; name chosen as a little elf drawing freely.",[61,64],{"id":62,"by":11,"text":63},"44874631","There’s no specific reason, I just liked the idea of a little elf\u002Fgoblin having the freedom to draw whatever they wanted. At first, I wanted to call this project \"Folletto\" (in…",{"id":65,"by":11,"text":66},"44870825","I already have some experience with Python\u002FPySide6, and I was mainly interested in having a working prototype as soon as possible (I’m experimenting with SDL3 and animating…",[68,72,79,83],{"value":69,"source":48,"evidence":70},"Python",[71],{"id":65,"by":11,"text":66},{"value":73,"source":48,"evidence":74},"PySide6",[75,76],{"id":65,"by":11,"text":66},{"id":77,"by":11,"text":78},"44870900","That’s also why the project was built from scratch. The only real dependency of the project is PySide6. The icons don’t come from any package. PyInstaller is used solely for…",{"value":80,"source":48,"evidence":81},"PyInstaller",[82],{"id":77,"by":11,"text":78},{"value":84,"source":48,"evidence":85},"SDL3 (experimenting)",[86,87],{"id":65,"by":11,"text":66},{"id":88,"by":11,"text":89},"44874646","I’m not a graphic designer guy, I wouldn’t know where to start, but maybe in the future I could use Tilf to draw the logo! My highest artistic expression, for now, will probably…","open_source","launched","solo",{"praise":94,"objections":115,"requests":134,"questions":153,"alternatives":172},[95,111],{"value":96,"source":97,"evidence":98},"Hand-crafted, simple and easy to run","commenter",[99,103,107],{"id":100,"by":101,"text":102},"44870188","rvnx","Very nice to see that this project is hand-crafted and not AI-generated like 99% of the submissions here So, congrats on your release.",{"id":104,"by":105,"text":106},"44870855","zamadatix","I like that it really is simply built and packaged, I'm sure it was fun to hack away at. There's something about gluing together a million packages which sucks the fun out of…",{"id":108,"by":109,"text":110},"44875893","SkyeCA","Awesome program OP, I downloaded it on my Mac and it Just Works(TM). One helpful feature would be to shift an entire row\u002Fcolumn of pixels down X rows\u002Fcolumns. Perhaps if I get…",{"value":112,"source":97,"evidence":113},"Works out of the box on macOS",[114],{"id":108,"by":109,"text":110},[116,127],{"value":117,"source":97,"evidence":118},"Name has unintended sexual connotations",[119,123],{"id":120,"by":121,"text":122},"44872833","BriggyDwiggs42","Milf, dilf, etc",{"id":124,"by":125,"text":126},"44873105","bitwize","Wait till you see the image editor named after a kind of BDSM bottom.",{"value":128,"source":97,"evidence":129},"Logo is not pixel art",[130],{"id":131,"by":132,"text":133},"44871183","hug","Great project! I have one very silly question... Why is the elf logo not pixel art? :)",[135,139,146],{"value":136,"source":97,"evidence":137},"Add feature to shift a whole row or column of pixels",[138],{"id":108,"by":109,"text":110},{"value":140,"source":97,"evidence":141},"Add GitHub topics for discoverability",[142],{"id":143,"by":144,"text":145},"44873584","renegat0x0","Please provide github topics (tags) for the project. It may boost your project discoverability. I often use it with github search to find interesting projects in \"topic\".",{"value":147,"source":97,"evidence":148},"Support FreeBSD",[149],{"id":150,"by":151,"text":152},"44874054","3036e4","Latest Aseprite is still available with free (as in beer) source code to compile, even if it is a bit heavy on the dependencies these days, including requiring that you install a…",[154,165],{"value":155,"source":97,"evidence":156},"Why PySide6 instead of Tkinter",[157,161],{"id":158,"by":159,"text":160},"44870603","mouse_","Congratulations! What made you decide to go with PySlide6?",{"id":162,"by":163,"text":164},"44871353","synergy20","why not just the default tk widgets, might be much less of external dependencies?",{"value":166,"source":97,"evidence":167},"Why the name Tilf",[168],{"id":169,"by":170,"text":171},"44872360","kookamamie","Why, of all names possible, you thought TILF was the best one?",[173,180,187],{"value":174,"source":97,"evidence":175},"LibreSprite",[176],{"id":177,"by":178,"text":179},"44873001","HelloUsername","> There are several Pixel Art Editors that do the same things and even much more, but many require an account registration or the insertion of an e-mail or have a certain…",{"value":181,"source":97,"evidence":182},"mtPaint",[183],{"id":184,"by":185,"text":186},"44873219","smartmic","I'll throw my favourite into the ring, mtPaint: https:\u002F\u002Fmtpaint.sourceforge.net\u002F",{"value":188,"source":97,"evidence":189},"PixelLab",[190],{"id":191,"by":192,"text":193},"44871369","zoba","I recently discovered and have been fairly happy with PixelLab - an AI pixel art generator. I feel like they have a ways to go in features and UX, but it shows promise.",{"comments":195,"answered":196,"key":197},12,4,[198,201,204],{"id":199,"text":200},"44870754","Thanks! Although I had to use it for some things (like the logo, for example, and I’m not a \"graphic guy\"), in the end, since it’s a simple project by design, I didn’t mind, and…",{"id":202,"text":203},"44875285","Done. Thanks!",{"id":205,"text":206},"44875279","> Going to have a look at Tilf as well, to see if it is not too much work to get it to run in FreeBSD It should work without any issues, as long as there’s a Python interpreter…",{"commenters":208,"max_depth":30,"maker_replies":195,"first_comment_mins":42,"lifespan_hours":209},40,58,[211,215,218,220,222,224,228,231,234,237,239,242,244,247,250,253,256,258,261,264,266,268,271,274,277,279,281,284,287,289,290,292,293,295,296,297,299,301,303,305,309,311,313,316,317,318,320,323,324,325,327,330,333,334,337,339,342,344,345,346,348,352,356],[212,32,32,213,214,32],"44874333","other\u002Fneutral\u002Fnone","rudolftheone",[216,32,32,213,217,32],"44877380","mclau157",[219,32,32,213,214,32],"44898228",[100,33,42,221,101,32],"maker\u002Fpositive\u002Fnone",[199,33,32,223,11,33],"maker\u002Fneutral\u002Fnone",[225,33,32,226,227,32],"44872495","commenter\u002Fneutral\u002Fnone","llbbdd",[229,33,32,213,230,32],"44872555","SanitaryThinkin",[232,33,32,213,233,32],"44873633","robertlagrant",[235,33,32,213,236,32],"44880707","dvfjsdhgfv",[238,33,32,226,233,32],"44885818",[240,33,32,213,241,32],"44874025","wiseowise",[243,33,32,213,109,32],"44875797",[245,33,32,213,246,32],"44875846","itsoktocry",[248,33,32,213,249,32],"44877601","hombre_fatal",[251,33,32,213,252,32],"44873035","ofrzeta",[254,33,32,213,255,32],"44873134","globular-toast",[257,33,32,226,252,32],"44873173",[259,33,32,213,260,32],"44873951","latexr",[262,33,32,226,263,32],"44874340","monsieurbanana",[265,33,32,226,260,32],"44874420",[267,33,32,226,263,32],"44874795",[269,33,32,213,270,32],"44874519","cdrini",[272,33,32,213,273,32],"44874740","criddell",[275,33,32,226,276,32],"44876911","mossTechnician",[278,33,32,226,252,32],"44879144",[280,33,32,213,246,32],"44875681",[282,33,32,213,283,32],"44875808","hollowturtle",[285,33,32,213,286,32],"44873508","vnhrmth",[143,38,43,288,144,32],"maker\u002Fneutral\u002Fdocs",[202,38,32,288,11,33],[177,43,33,291,178,32],"project\u002Fcritical\u002Fidea",[184,43,32,226,185,32],[294,43,32,213,178,32],"44873462",[150,43,32,213,151,32],[205,43,32,223,11,33],[131,196,43,298,132,32],"project\u002Fneutral\u002Fdesign",[88,196,32,300,11,33],"maker\u002Fneutral\u002Fdesign",[108,42,42,302,109,32],"project\u002Fpositive\u002Fexecution",[304,42,32,221,11,33],"44876080",[306,42,43,307,308,32],"44876415","project\u002Fneutral\u002Fexecution","JKCalhoun",[310,42,32,221,11,33],"44877699",[312,42,32,226,308,32],"44880709",[314,42,32,315,11,33],"44878457","maker\u002Fneutral\u002Fexecution",[104,30,42,302,105,32],[77,30,32,223,11,33],[169,31,43,319,170,32],"project\u002Fneutral\u002Fnone",[321,31,32,226,322,32],"44872762","runjake",[120,31,32,213,121,32],[124,31,32,213,125,32],[326,31,32,213,109,32],"44875860",[328,31,32,213,329,32],"44874634","johnisgood",[331,31,32,213,332,32],"44873215","vorticalbox",[62,31,32,223,11,33],[335,18,42,336,125,32],"44873112","project\u002Fpositive\u002Fidea",[338,18,32,221,11,33],"44874800",[340,18,42,336,341,32],"44877265","apprentice7",[158,343,43,223,159,32],9,[65,343,32,223,11,33],[162,343,43,223,163,32],[347,343,32,223,11,33],"44874671",[349,343,42,350,351,32],"44874026","project\u002Fpositive\u002Fdesign","ethan_smith",[353,354,43,319,355,32],"44875269",10,"lardbgard",[191,357,32,213,192,32],11,[],[360,364,369,374,378,383],{"id":361,"name":362,"points":363,"category":20},"44846281","horizon",788,{"id":365,"name":366,"points":367,"category":368},"44878151","Building a web search engine from scratch with 3B neural embeddings",699,"web_saas",{"id":370,"name":371,"points":372,"category":373},"44855157","Engineering.fyi",470,"dev_tools",{"id":375,"name":376,"points":377,"category":373},"44878650","Omnara",310,{"id":379,"name":380,"points":381,"category":382},"44856935","Bolt",261,"languages",{"id":384,"name":385,"points":386,"category":387},"44882441","Gore",148,"games",false,"v2",{"id":391,"name":5,"line":6,"ai":388,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":392,"top":18,"kw":393,"maker":11,"domain":10,"tier":19,"attempts":32,"strip":394,"url":9,"mix":395,"praise":96,"objection":117,"sub":21},44870137,0.27,[21,24,25,26],"0050000000000000003100305305030000553353",[30,31,32,33],1794036680088]