[{"data":1,"prerenderedAt":419},["ShallowReactive",2],{"project-18738275":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":44,"post_text":46,"what":47,"said":71,"maker_in_thread":186,"shape":194,"grid":199,"attempts":381,"same_week":382,"maker_shows":18,"maker_hidden":411,"reader_version":412,"card":413},"18738275","curves","A new spline","title","Show HN: A new spline","https:\u002F\u002Fraphlinus.github.io\u002Fcurves\u002F2018\u002F12\u002F21\u002Fnew-spline.html","raphlinus.github.io","raphlinus",1545442006,2018,341,72,60,2155,3,"legend","creative","spline curve primitive","web_app",[24,25,26,27,28],"spline","bezier curve","curvature continuity","hobby spline","vector graphics","mixed",0.196,{"positive":32,"neutral":32,"mixed":33,"critical":34},13,0,8,34,{"idea":37,"design":39,"docs":41,"pricing":43},{"positive":38,"critical":33},5,{"positive":38,"critical":40},4,{"positive":33,"critical":42},2,{"positive":42,"critical":33},[38,18,18,45,18,33,45,18,45,38,38,18,38,33,33,38,18,18,33,33,38,38,38,33,38,18,45,33,33,33,33,33,33,38,33,33,33,18,38,45],1,null,{"problem":48,"audience":46,"pricing":55,"motivation":46,"time_to_build":46,"stack":61,"openness":68,"stage":69,"team_size":70},{"value":49,"source":50,"evidence":51},"Bezier curves are hard to use because control points do not map intuitively to shape","maker",[52],{"id":53,"by":11,"text":54},"18738626","Thanks, that's music to my ears! A major focus of this work was making a primitive that would be intuitive and that you could build a good UX around. Considering the nontrivial…",{"value":56,"source":50,"evidence":57},"GPL license; commercial licenses available by exception",[58],{"id":59,"by":11,"text":60},"18740951","Thank you. As you note, the story here is very clear. It's under GPL so there is no friction for it being used in open source creative apps like Inkscape, and for uses outside…",[62],{"value":63,"source":50,"evidence":64},"JavaScript",[65],{"id":66,"by":11,"text":67},"18738977","I tweaked the language, thanks for pointing that out. Obviously JavaScript is capable of very real systems and many of the potential applications of this work. Regarding the…","open_source","prototype","solo",{"praise":72,"objections":97,"requests":123,"questions":145,"alternatives":160},[73,86],{"value":74,"source":75,"evidence":76},"Intuitive and easy to use compared to Beziers","commenter",[77,81,82],{"id":78,"by":79,"text":80},"18738620","eridius","Speaking as someone who's never touched splines before, this looks pretty nice. I was able to very quickly reproduce the \"a\" from your screenshot using your demo.",{"id":53,"by":11,"text":54},{"id":83,"by":84,"text":85},"18738780","Ninjaneered","Very nice! I've used a spline tool in SolidWorks that I found useful and was hoping to find something outside of solid modeling that was similar and this seems to be it, super…",{"value":87,"source":75,"evidence":88},"Smooth G2 continuity useful for path planning and animation",[89,93],{"id":90,"by":91,"text":92},"18739804","abainbridge","I'm up to page 9 on your thesis, and have already learned many things. Your \"empirical testing of fairness\" section is great. From your thesis: > Intuitively, curvature is the…",{"id":94,"by":95,"text":96},"18741455","theveloped","This will be amazing for shape optimization. As it seems one can describe various shapes with very little control points and parameters. Furthermore the relation between the…",[98,109,116],{"value":99,"source":75,"evidence":100},"GPL license discourages commercial adoption",[101,105],{"id":102,"by":103,"text":104},"18739963","speps","> and solves most of the problems that held that back from wider popularity. > … > and is in JavaScript with a GPL license. If you want them to be widely adopted outside of…",{"id":106,"by":107,"text":108},"18740040","TickleSteve","Agree, GPL effectively means non-commercial. Most companies won't touch GPL code with a barge-pole.",{"value":110,"source":75,"evidence":111},"Curve handles can produce spikes when rotated",[112],{"id":113,"by":114,"text":115},"18738965","spiralganglion","This is very interesting! I'm mostly familiar with b-splines and NURBS and such, and there's some behaviour in this demo that I don't understand. If I create a round control…",{"value":117,"source":75,"evidence":118},"Lacks basic usage documentation",[119],{"id":120,"by":121,"text":122},"18739755","hevi_jos","Hello Ralph. It looks great but you should add some basic usage howto. It is obvious that you know how to use it, you created it, but other people do not. The first time I used…",[124,131,138],{"value":125,"source":75,"evidence":126},"Add curvature combs visualization",[127],{"id":128,"by":129,"text":130},"18738931","s1mon","It would be great to be able to compare this with Béziers of arbitrary degree. Some people get frustrated with degree 3 Béziers, but you can do great things with degree 5, 6, 7,…",{"value":132,"source":75,"evidence":133},"Add a link to the demo",[134],{"id":135,"by":136,"text":137},"18738489","gus_massa","> For the impatient, click on the screenshot below to try the demo yourself. You should add a link to the demo in the word \"demo\" for the people like me that can't follow…",{"value":139,"source":75,"evidence":140},"Port to C++",[141],{"id":142,"by":143,"text":144},"18738958","potiuper","\"I intend to port to at least C++ so that it can be more easily integrated into real systems\" - disregarding the implication that C++ is a more \"real\" system than Javascript what…",[146,153],{"value":147,"source":75,"evidence":148},"How does it differ from Inkscape's features",[149],{"id":150,"by":151,"text":152},"18742929","person_of_color","I don't understand how is this different to somethigng in Inkscape?",{"value":154,"source":75,"evidence":155},"Why GPL license was chosen",[156],{"id":157,"by":158,"text":159},"18740033","CamperBob2","The code is in a research repo... with a GPL license This seems like the sort of thing that LGPL is really well-suited for. Any reason for going with GPL? Not many people are…",[161,171,175,182],{"value":162,"source":75,"evidence":163},"Hobby spline (Apple Pages)",[164,168],{"id":165,"by":166,"text":167},"18738632","Jasper_","This looks really awesome. I'm curious, because I haven't seen much work built on top of Knuth and Hobby's \"Most Pleasing Curve\" as defined by Mathematical Typography [0] and…",{"id":169,"by":11,"text":170},"18738657","Well, there's my thesis :) There has been some work on this. Apple's Pages uses an implementation of the Hobby spline, demonstrating that it can be used in real consumer…",{"value":172,"source":75,"evidence":173},"Bezier curves of higher degree",[174],{"id":128,"by":129,"text":130},{"value":176,"source":75,"evidence":177},"TCB Kochanek-Bartels spline",[178],{"id":179,"by":180,"text":181},"18740574","bsenftner","Having written the TCB spline (Kochanek–Bartels spline) implementation for a few animation pipelines, I am curious what you see as the problems with the TCB spline? Having…",{"value":183,"source":50,"evidence":184},"k-Curve from Adobe",[185],{"id":169,"by":11,"text":170},{"comments":187,"answered":34,"key":188},11,[189,190,193],{"id":169,"text":170},{"id":191,"text":192},"18739083","I'll add curvature combs in a future revision. I'll also point out that you can see a curvature plot of the underlying 2-parameter curve family by playing with beztoy.html in the…",{"id":53,"text":54},{"commenters":195,"max_depth":196,"maker_replies":187,"first_comment_mins":197,"lifespan_hours":198},42,7,51,31,[200,202,204,205,207,208,211,215,218,220,221,224,228,229,232,235,238,241,243,245,246,248,250,253,256,258,260,262,266,270,272,276,278,281,283,286,289,293,296,299,300,301,303,305,309,311,313,316,317,320,322,325,328,331,334,336,339,341,343,346,349,353,357,359,361,363,366,368,370,372,375,378],[90,33,38,201,91,33],"project\u002Fpositive\u002Fidea",[165,45,18,203,166,33],"project\u002Fneutral\u002Fidea",[169,45,33,201,11,45],[128,42,18,206,129,33],"project\u002Fneutral\u002Fdesign",[191,42,33,206,11,45],[209,42,33,210,129,33],"18741331","commenter\u002Fneutral\u002Fnone",[212,42,45,213,214,33],"18739135","project\u002Fcritical\u002Fdesign","ttoinou",[216,42,45,213,217,33],"18739540","jacobolus",[78,18,38,219,79,33],"project\u002Fpositive\u002Fdesign",[53,18,33,219,11,45],[222,18,45,213,223,33],"18741047","rntz",[225,18,18,226,227,33],"18745144","project\u002Fneutral\u002Fdocs","archagon",[135,40,18,226,136,33],[230,40,33,231,11,45],"18738517","maker\u002Fneutral\u002Fdocs",[233,40,45,234,129,33],"18738852","project\u002Fcritical\u002Fdocs",[236,38,18,203,237,33],"18740472","rsp1984",[239,38,38,201,240,33],"18740649","AnthonBerg",[242,38,33,203,11,45],"18740916",[83,244,38,219,84,33],6,[113,196,18,206,114,33],[247,196,33,206,11,45],"18739003",[249,196,38,219,114,33],"18739040",[251,196,18,206,252,33],"18740777","strainer",[254,196,33,255,217,33],"18741101","commenter\u002Fneutral\u002Fdesign",[257,196,33,255,252,33],"18741703",[259,196,33,255,217,33],"18741800",[261,196,33,255,252,33],"18742037",[263,34,38,264,265,33],"18739243","maker\u002Fpositive\u002Fnone","hayd",[267,34,18,268,269,33],"18740837","maker\u002Fneutral\u002Fnone","amelius",[271,34,33,268,11,45],"18740941",[273,34,33,274,275,33],"18741191","other\u002Fneutral\u002Fnone","pouta",[277,34,18,268,269,33],"18741255",[179,279,33,280,180,33],9,"other\u002Fneutral\u002Fidea",[282,279,33,280,11,45],"18740934",[284,279,33,285,180,33],"18741943","other\u002Fneutral\u002Fdesign",[287,279,33,288,217,33],"18741143","other\u002Fcritical\u002Fdesign",[290,291,38,201,292,33],"18739102",10,"pontifier",[294,187,38,201,295,33],"18739555","tobr",[142,297,18,298,143,33],12,"project\u002Fneutral\u002Fnone",[66,297,33,268,11,45],[94,32,38,201,95,33],[302,32,33,274,217,33],"18741556",[304,32,33,274,95,33],"18741668",[306,307,38,219,308,33],"18742163",14,"kazinator",[157,310,18,298,158,33],15,[150,312,18,203,151,33],16,[102,314,45,315,103,33],17,"project\u002Fcritical\u002Fnone",[106,314,45,315,107,33],[318,314,33,210,319,33],"18740046","detaro",[321,314,33,210,158,33],"18742916",[323,314,33,210,324,33],"18740328","Fnoord",[326,314,33,210,327,33],"18740104","patrec",[329,314,33,210,330,33],"18740219","Illniyar",[332,314,33,210,333,33],"18740413","nemetroid",[335,314,33,210,330,33],"18740470",[337,314,33,210,338,33],"18740462","jakobegger",[340,314,33,210,327,33],"18740571",[59,314,33,342,11,45],"maker\u002Fneutral\u002Fpricing",[344,314,33,210,345,33],"18742099","ddingus",[347,314,33,210,348,33],"18740218","k__",[350,314,38,351,352,33],"18740340","project\u002Fpositive\u002Fpricing","GuB-42",[354,314,33,355,356,33],"18740426","commenter\u002Fneutral\u002Fpricing","espadrine",[358,314,33,355,338,33],"18740478",[360,314,33,355,356,33],"18740580",[362,314,33,355,338,33],"18741132",[364,314,33,355,365,33],"18741689","rabidrat",[367,314,38,351,345,33],"18742074",[120,369,45,234,121,33],18,[371,369,18,226,217,33],"18739807",[373,369,38,219,374,33],"18740318","zengid",[376,369,33,377,11,45],"18741282","maker\u002Fpositive\u002Fdocs",[379,369,45,213,380,33],"18743020","ratmice",[],[383,388,392,397,402,407],{"id":384,"name":385,"points":386,"category":387},"18755782","Wiv.js",265,"languages",{"id":389,"name":390,"points":391,"category":387},"18750561","Magic Grid",167,{"id":393,"name":394,"points":395,"category":396},"18765482","Notable",124,"productivity",{"id":398,"name":399,"points":400,"category":401},"18725485","Serverless Analytics (Statsbot \u002F Cube.js)",114,"data",{"id":403,"name":404,"points":405,"category":406},"18754010","Inside Python Dict",111,"learning_science",{"id":408,"name":409,"points":410,"category":387},"18761359","lambdatalk FFT",100,false,"v2",{"id":414,"name":5,"line":6,"ai":411,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":415,"top":18,"kw":416,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":417,"url":9,"mix":418,"praise":74,"objection":99,"sub":21},18738275,0.2,[24,25,26,27,28],"5331301315535005330055505310000005000351",[32,32,33,34],1793990983610]