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