12:38:39 <nb> #startmeeting Keynote from lulzbot 12:38:39 <zodbot> Meeting started Sat Aug 10 12:38:39 2013 UTC. The chair is nb. Information about MeetBot at http://wiki.debian.org/MeetBot. 12:38:39 <zodbot> Useful Commands: #action #agreed #halp #info #idea #link #topic. 12:38:41 <nb> #chair mizmo 12:38:41 <zodbot> Current chairs: mizmo nb 12:39:18 * nb fixed it mizmo 12:39:24 <mizmo> thanks nb :0 12:39:26 <mizmo> :) 12:40:15 <mizmo> (... slide issues) 12:48:14 <mizmo> Good morning everybody 12:48:19 <mizmo> thank u for having me here today 12:48:30 <mizmo> when i first wrote this i didnt expect to meet half you inb the first day 12:48:33 <mizmo> its been a wonderful exp 12:48:37 <mizmo> youve all been friendly and welcominging 12:48:40 <mizmo> ive have a blast so far 12:48:51 <mizmo> the printer got damaged by the baggage clerks at the airport 12:48:56 <mizmo> i had to epoxy on a prat 12:48:59 <mizmo> part 12:49:01 <mizmo> so it might snap off 12:49:10 <mizmo> some of you are unfamiliar w who i am what i do and the company i work for 12:49:17 <mizmo> how it relates to fedora 12:49:21 <mizmo> i'm aeva, hello 12:49:46 <mizmo> lulzbot is a hw community, got involved 3d printing from a relative outsider pov 12:49:49 <mizmo> bring in programmers and designers 12:50:01 <mizmo> would like to have a 3d printing session but there might not be time 12:50:06 <mizmo> lulzbot & libre hardware 12:50:13 <mizmo> lulzbot produces and sells libre hardware... reprap style 12:50:21 <mizmo> internal interest to expand to manufacture other hw 12:50:24 <mizmo> current focus is 3d printers 12:50:30 <mizmo> takes pride in being a good community member 12:50:40 <mizmo> building materials and source files for all custom parts in printers are open source 12:50:53 <mizmo> everything standardized product, but if not standardized it's libre hardware 12:51:06 <mizmo> libre hw, the hw equiv to libre sw 12:51:18 <mizmo> all originally developed by 3d printing community itself, none behind closed doors 12:51:31 <mizmo> lulzbot first hw company get fsf recognition, 1st 3d printing co to do so 12:51:50 <mizmo> lulzbot offers discounts to edu institutions, and been known to donate printers to ppl and orgs doing good work in community 12:51:59 <mizmo> given 3 printers to various hacker spaces to improve access to emerging tech to communities 12:52:14 <mizmo> gave printer to ? who then expanded tech to allow debugging models 12:52:27 <mizmo> we gave a 3d printer to red hat, which went to tom 12:52:41 <mizmo> who is part of community, responsible for packaging most of the 3d sw we use 12:53:08 <mizmo> as such, thank you tom (for fixing tech issues with preso) 12:53:19 <mizmo> libre alternatives to 3d sharing tools 12:53:24 <mizmo> this is how i got involved, on this alternative 12:53:31 <mizmo> most of my coworkers' backgrounds are in other disciplines 12:53:34 <mizmo> i'm the only sw engineer 12:53:43 <mizmo> i have a secret agenda i'm hoping to accomplish in this talk and during the rest of the conf 12:53:57 <mizmo> everyone here in this room has valuable skillsets that the libre hw community needs more of 12:54:11 <mizmo> the comm populated by the sort of ppl who enjoy and make hw 12:54:19 <mizmo> fantastic hw only goes so far without good sw 12:54:26 <mizmo> both only go so far without a great user interface 12:54:36 <mizmo> would like to convince some of you to join libre hw movement 12:54:40 <mizmo> two main barriers to contrib 12:54:42 <mizmo> 1) access to tools 12:54:46 <mizmo> 2) psychological 12:54:53 <mizmo> back in 2006 when i first heard about 3d printing (reprap) 12:55:00 <mizmo> reprap hadn't accomplished anything 12:55:08 <mizmo> candyfab existed... carmelized sugar printer 12:55:20 <mizmo> an inspiration to me to start learning about 3d printing 12:55:23 <mizmo> i was finishing up college 12:55:26 <mizmo> no means to buy any machinery 12:55:33 <mizmo> not much existed tha ti could afford 12:55:39 <mizmo> but i was fascinated with 3d printing for art making 12:55:48 <mizmo> was able to put together an opengl script to create cross sections of a model 12:55:52 <mizmo> so i could print them out on paper 12:55:55 <mizmo> put on a thicker substrate 12:56:03 <mizmo> then glue together to produce a physical object 12:56:10 <mizmo> call this process '3d print making' 12:56:14 <mizmo> my background is in writing sw, not hw 12:56:19 <mizmo> im not particularly great at math either 12:56:27 <mizmo> i know what i taught myself as i needed 12:56:30 <mizmo> the scale of the prints is wrong 12:56:40 <mizmo> it didn't use real world measurements (my scripts) - i threw it together in a weekend 12:56:44 <mizmo> there are two barriers, hw and psychology 12:57:06 <mizmo> most folks i know, with the exception of ppl playing with cnc machines for 40 years... decide it didn't matter they didn't have the hw, they would write the sw 12:57:14 <mizmo> but most of the sw hard to test without an attached printer 12:57:20 <mizmo> anyways in 2010 i was jonesing for a real printer 12:57:25 <mizmo> my local hackerspace was running a workshop 12:57:31 <mizmo> makerbot was still a librehw company 12:57:38 <mizmo> but machines were notoriously unreliable 12:57:46 * mizmo personal xperience <= yes 12:57:57 <mizmo> in one afternoon built a non working 3d printer at workshop 12:58:05 <mizmo> took about a month of scouring internet for scraps of info 12:58:17 <mizmo> then took a while to work up courage to ask hw ppl at hackerspace what i thought were stupid quetsions 12:58:23 <mizmo> then took another month to figure out how to calibrate the software 12:58:35 <mizmo> after 2 months of work managed to get together a working printer 12:58:36 <mizmo> almost 12:58:41 <mizmo> parts were coming out crooked 12:58:44 <mizmo> defect in frame vertices 12:58:48 <mizmo> causing printer to be crooked 12:59:05 <mizmo> hw ppl at space quick to point out that i could 'easily' take apart the entire thing, manufacture my own vertices, and put it back together again 12:59:11 <mizmo> would easily take me a few weekends, would take them a few hours 12:59:18 <mizmo> much to their horror i solved the problem is 5 minutes 12:59:27 <mizmo> used a matrix transform in the sw to account for the skew 12:59:37 <mizmo> results, while still technically wrong, printed out looking just fine 12:59:42 <mizmo> two wrongs really do make a right sometimes 12:59:53 <mizmo> one thing i want to point out 12:59:59 <mizmo> you can build a primitive or broken version of something 13:00:02 <mizmo> and you can use it to upgrade itself 13:00:15 <mizmo> i still have the original frame of my first printer, but i've used it to upgrade itself including a new extruder lock 13:00:21 <mizmo> so ive used the printer to improve its own print quality 13:00:24 <mizmo> that was yesterday 13:00:27 <mizmo> today you have much better options 13:00:36 <mizmo> you can buy a libre hw printer now and tinker to your hearts content 13:00:44 <mizmo> kits are much easier to put together and have better docs 13:00:53 <mizmo> now is a good time to dive into 3d printer, wont take tons of frustration anymore 13:01:03 <mizmo> more and more hackerspaces are picking up 3d printers 13:01:06 <mizmo> go check out local community see what they have avilable 13:01:23 <mizmo> when i first started out, i thought i'd make parts with it and there would bemagic under the hood that made things work 13:01:26 <mizmo> that did not last long 13:01:49 <mizmo> if i added my skew screw to the software, someone at hackerspace said he would use it 13:01:54 <mizmo> software was written in python 13:02:10 <mizmo> only had a handful of contributers - logic not esoteric - source code was awful maze of poorly organized code 13:02:26 <mizmo> this exp, if sw is bad, we've made it unnecssarily hard to hack on 13:02:34 <mizmo> better alternatives to skeinforge (which is the stuff of nightmares) 13:02:45 <mizmo> now can convince more hackers to work on the sw 13:02:50 <mizmo> to make it more powerful and easier to use 13:03:07 <mizmo> whats my agenda, why am i here? 13:03:19 <mizmo> at first glance it seems 3d printing isn't what you do 13:03:21 <mizmo> separate concerns 13:03:35 <mizmo> clearly fedora has an interest of the only gnu/linux distro to date to package all of the 3d printing software 13:03:38 <mizmo> it's important 13:03:47 <mizmo> a repo on github is not the definition of 'turnkey' 13:03:56 <mizmo> im here bc the hw community is populated by hw geeks 13:04:13 <mizmo> reprap community and 3d printing at large - mostly electrical and mech engineers, and they write sw, but i think they'd really rather not 13:04:20 <mizmo> inadequate UX in our tooling 13:04:28 <mizmo> yet to hear someone say 'user experience' and keep a straight face 13:04:40 <mizmo> imagine what would happen if we had exp programmers and designers from the free software community hacking on this stuff 13:04:44 <mizmo> the results would be amazing 13:04:50 <mizmo> more and more tech users want to be empowered by 3d printing 13:04:56 <mizmo> tech is still rapidly evolving 13:05:00 <mizmo> and ppl need freedom to tinker 13:05:05 <mizmo> so sw needs to be flexible 13:05:12 <mizmo> i'm here because libre hw printing community needs al of you 13:05:18 <mizmo> devs, designers, hobbyists, etc 13:05:21 <mizmo> with all that said 13:05:27 <mizmo> i'd like to talk to you about the sw we currently use 13:05:50 <mizmo> i'm going to show you what lulzbot is currently working on fo rtheir printers 13:05:58 <mizmo> the printers you see here... process of patterns... 13:06:10 <mizmo> the ultimate goal from sw pov is to transmit gcode through a serial device which is the printer 13:06:22 <mizmo> printer responsible for interpreting gcode to print movements 13:06:29 <mizmo> gcode first appeareed in 1950s terrible state code 13:06:37 <mizmo> ISO standard that we loosely follow in reprap community 13:06:41 <mizmo> implementation differs from hw to hw 13:06:48 <mizmo> have to target gcode for specific machine 13:06:59 <mizmo> most pleasant way to think of gcode is a vector graphics language 13:07:03 <mizmo> easy to visualize it as such 13:07:13 <mizmo> how do we get gcode? slicing sw... dark magic. magic is in sw, not hw 13:07:18 <mizmo> not as hard to write as you might think 13:07:30 <mizmo> gist of slicing process... have a 3d model rep' by triangles 13:07:37 <mizmo> figure out cross sections of object in layers 13:07:51 <mizmo> cross sections make an outline, two dimensional line segments 13:07:59 <mizmo> can make walls of prints stronger with cross hatching, etc 13:08:29 <mizmo> workflow of 3d printing involves use of 3 programs 13:08:31 <mizmo> 3d programs 13:08:57 <mizmo> 1) design software. blender is one of the tool sin the crown of 3d sw... great for debugging models. have a set of tutorials in DVD form making it ideal for users and good user experience 13:09:17 <mizmo> for less visually minded folk, openscad lets you programmatically create 3d models 13:09:21 <mizmo> produces stl files from a C-like language 13:09:40 <mizmo> can programmatically generate models 13:09:46 <mizmo> 2) slicing software 13:09:56 <mizmo> ? is the free slicing software for libre sw 13:09:58 <mizmo> (slizer?) 13:10:04 <mizmo> it's output is comprable to gcode 13:10:14 <mizmo> in that it's an executable sequence of instructions to be interpreted by system 13:10:20 <nirik> http://slic3r.org/ 13:10:23 <mizmo> gcode produced for one priner wont produce good results for others 13:10:24 <mizmo> thanks nirik 13:10:36 <mizmo> if your printer has a storage mechanism, the entire gcode file can be uploaded at once or stored on removable media 13:10:46 <mizmo> host will start print job, then printer can be disconnected from computer 13:10:52 <mizmo> some printers can operate independent of host machine 13:11:16 <mizmo> advantage of streaming back and forth to printer is visualization of print job, or print errors (run out of filament, etc) 13:11:23 <mizmo> what was 3 13:11:42 <mizmo> 3) firmware itself maybe?? 13:11:59 <mizmo> to upload gcode 13:12:45 <mizmo> oh 3) software takes gcode and send to printer 13:12:50 <mizmo> like 'printrun' 13:13:24 <nirik> Pronterface (I think) 13:13:56 <nirik> http://reprapbook.appspot.com/#d0e1156 13:14:13 <mizmo> <demo logistics> 13:15:28 <mizmo> showing off pronterface 13:15:37 <mizmo> manual print control button... 13:15:42 <mizmo> print head moves if press a button 13:15:49 <mizmo> press another button.. and it goes home 13:15:55 <mizmo> pronterface has a temperature indicator at the bottom 13:16:11 <mizmo> controls for adjusting heat, nozzle temp, extruder, this is for moving print head 13:16:39 <mizmo> serial device connected to - lists the speed it's running at 13:17:17 <mizmo> here's a preview of the gcode for the print i've loaded up 13:17:27 <mizmo> it's coming up to temperature now, i'll start print job momentarily 13:18:38 <mizmo> this is blender 13:18:48 <mizmo> in the user prefs in the add on section 13:18:55 <mizmo> there's... a 3d printing toolbox 13:19:29 <mizmo> so 3d printing toolbox in blender lets you do mesh analysis 13:19:36 <mizmo> which is a thing that's been added recently to 3d printing 13:19:42 <mizmo> if there are faces too close together 13:19:47 <mizmo> intersections between faces that re problematic 13:19:47 <mizmo> etc 13:19:51 <mizmo> we'll open up another test model 13:19:54 <mizmo> i'll use the blender monkey 13:19:58 <mizmo> it's actually an unprintable model 13:20:14 <mizmo> (blender monkey is suzanne) 13:20:27 <mizmo> suzanne has a problem... theres a point where it's not continuous topology 13:20:34 <mizmo> definition for a mathematical mesh 13:20:54 <mizmo> in the mesh analysis tool you can see various areas highlighted, 45 degree roll if overhang is over 45 degrees, won't work 13:21:00 <mizmo> shows cases where model may be too thin 13:21:23 <mizmo> can point out where print resolution may not be sharp enough to print correctly 13:21:38 <mizmo> speakers have sample printed models in their bags 13:22:34 <mizmo> so this is slicer 13:22:38 <mizmo> with slicer you can open up the model 13:22:47 <mizmo> let's add a model 13:22:54 <mizmo> in this case i'll do the little fedora part 13:23:02 <mizmo> and... then it shows up in a little preview there 13:23:11 <mizmo> can click a button to add mulitples 13:23:47 <mizmo> presets... 1st 3 provided by lulzbot 13:23:52 <mizmo> known to provide good results with this printer 13:24:02 <mizmo> so you dont have to figure out all these settings to have a good working printer from the start 13:24:12 <mizmo> but there is a plethora of settings though 13:24:18 <mizmo> to account for diff parameters and optimizations 13:24:26 <mizmo> unfortunately you'll probably tinker with that whether you want to or not 13:24:34 <mizmo> but at least you have something to start with to produce usable results 13:24:42 <mizmo> i use dvorak and this is qwerty 13:25:15 <mizmo> this program i just opened up 13:25:17 <mizmo> is skeinforge 13:25:27 <mizmo> i wanted to show you this terrifying lovecrafty nightmare i have over here 13:25:38 <mizmo> how awful... granted this is the program i learned when i first started printing 13:25:50 <mizmo> its just like... the number of things that are automated in slic3r... none of that is automated in skeinforge 13:26:23 <mizmo> theres a button in here called 'dirt'... it adds , the caption reads "activates to processing phase to account for jamie parker, skew along y axis skew along x axis' 13:26:27 <mizmo> thats skeinforge, still have nightamres abou tit 13:26:30 <mizmo> okay starting the demo... 13:26:45 <mizmo> cross your fingers 13:27:30 <mizmo> so that's the print process 13:27:34 <mizmo> it'll grow as it builds the coin 13:27:37 <mizmo> so 13:27:49 <mizmo> by now i hope it's apparent from everything youve seen 13:27:51 <mizmo> that it could be improved 13:28:02 <mizmo> and you should shudder slightly when i say things were much worse a few years ago 13:28:10 <mizmo> i hope that the design aspects should be self evident 13:28:13 <mizmo> here ar emost glaring issues i see 13:28:20 <mizmo> 1) nothing like the workflow users expect when they hear the word printing 13:28:32 <mizmo> 2) i should be able to open my model in blender and instead of export i should see a print option 13:28:38 <mizmo> could export a file like it normally would 13:28:54 <mizmo> store in a temp location, notify some kind of printing subsystem that there's something to work on 13:28:59 <mizmo> user shuld then be shown a slicing dialog 13:29:02 <mizmo> without a million options 13:29:15 <mizmo> then printing subsystem should give intelligent presets if make and model associated with printing 13:29:24 <mizmo> hey i have a custom thing going on dont use any of that <= users should be able to do 13:29:38 <mizmo> many things can and should be detected automatically 13:29:54 <mizmo> what is happening inside of these programs is not evident, i have not personally looked inside slic3r (personally bc im not a perl girl) 13:30:06 <mizmo> ive looked in skeinforge... i can tell you a few things that could be done better 13:30:08 <mizmo> need a design pattern 13:30:14 <mizmo> no separation between presentation and code 13:30:29 <mizmo> 'business logic' => replace with 'tiny gnomes' still makes sense 13:30:41 <mizmo> these are both python prgorams, not easy to read, don't follow standard style guide 13:30:56 <mizmo> 3) no unit tests, biggest problem in term of expanding our community with sw devs. only way to know if you broke something is to use on your own printer 13:31:04 <mizmo> 4) virtualization - need 3d printer to test changes no matter what 13:31:14 <mizmo> true for all 3d printing software ive ecountered so far 13:31:24 <mizmo> most ppl involved so far, pre-requisite is obtaining hardware 13:31:40 <mizmo> hard to learn sw without seeing how printer will respond to it 13:31:49 <mizmo> some hardware abstraction layer might be a good idea 13:31:56 <mizmo> would love to discuss this at great length with you between talks 13:32:49 <mizmo> this has been an eye opening experience 13:32:58 <mizmo> want to solve problems using free software tools 13:33:15 <mizmo> working on voxelpress... daemon called switchprint, listens for udev events for when printer is conencted / disconnected 13:33:20 <mizmo> figures out what type of printer is connected 13:33:30 <mizmo> nice common api through (dbus?) 13:33:32 <mizmo> code written in normal python 13:33:42 <mizmo> mostly feature complete driver should work with reprap style printer 13:33:53 <mizmo> major functionality still missing 13:34:01 <mizmo> but most of the hard stuff there already 13:34:11 <mizmo> printcontrol utilizes switchprint as its backend 13:34:14 <mizmo> contains no hw specific logic 13:34:21 <mizmo> written so i had sometihng to build a dbus api against 13:34:25 <mizmo> scope is small right now 13:34:38 <mizmo> while it is a proof of concept its capable of doing interesting thing that no other is able to do 13:34:49 <mizmo> automatically detects if you have a print head, how many, and adjusts UI based on that 13:34:56 <mizmo> does autodetection so you can figure out the printer's baud rate 13:34:59 <mizmo> forget that word again, let it disappear 13:35:04 <mizmo> lastly planned nextgen slicing tool 13:35:10 <mizmo> which will be able to utilize hw acceleration capabilities 13:35:15 <mizmo> via gnu ? 13:35:24 <mizmo> instead of vector cross sections, raster cross sections? 13:35:32 <mizmo> produced nearly instantaneous slicing 13:35:35 <mizmo> not as many design limitations 13:35:40 <mizmo> when you have a model that looks like it sohuld print 13:35:42 <mizmo> it will print 13:35:56 <mizmo> even if it has mathematical issues... rasterizer will work because it runs off of visual appearance 13:36:15 <mizmo> the print out worked 13:37:11 <mizmo> for this existing slicing sw, creating slicing engines, configs provided for identified hw 13:37:15 <mizmo> planned slicing sw will come later 13:37:21 <mizmo> other novel features to come 13:37:27 <mizmo> network printing, automation of tasks, all sorts of things 13:37:36 <mizmo> for more info, please check out voxelpress.org 13:37:42 <mizmo> or hangout in #voxelpress on freenode 13:38:20 <mizmo> once i figure out the state of our printer will announce on identica where demos will be 13:38:23 <mizmo> happy hacking everybody 13:38:26 <mizmo> <lots of applause> 13:38:47 <gholms> Thanks, mizmo! 13:39:34 * mizmo bows 13:39:42 <mizmo> that was a great talk 13:39:47 <mizmo> i think i understand how 3d printing works a lot better now 13:41:28 <mizmo> #stopmeeting 13:41:30 <mizmo> #endmeeting