3D Files with Wagtail
Published July 19, 2024
This video is from Wagtail Space US 2024 in Philadelphia, Pennsylvania, USA.
Lightning Talk Topics:
Doorknobs, but it's cool
You should be using WEBP
The Holodeck extended
Pyromania (Not the Def Leppard Album)
💻 Wagtail is the easiest open-source Python CMS to use:
Install the demo and start building your first site in 10 minutes: https://wagtail.org/get-started
📹 Related Videos To Watch Next:
â–¶ Quick Video Tour of Wagtail CMS 6.0 https://www.youtube.com/watch?v=_Vg_lPMipcQ
â–¶ The Latest on Wagtail AI https://www.youtube.com/watch?v=4zfs1u4Vy5Y
▶ What’s New in Wagtail CMS 6.0 https://www.youtube.com/watch?v=2AxLFyOFjQo
Wagtail future proofs your CMS system, as it’s open source, continuously updated and built on Python, one of the most popular global programming languages, used widely in machine learning and big data. So you’re always ahead of the curve when it comes to CMS platforms.
Wagtail is the #1 choice for accessibility, is scalable and most importantly, secure.
👉 Get started with a FREE Wagtail CMS TRIAL: https://wagtail.org/get-started
and see how easy it is to build a website that works for you.
📊 Read why Google, NASA, and the British NHS, are powering their digital estates with Wagtail: https://wagtail.org/about-wagtail/
🎥 More Wagtail Videos: https://www.youtube.com/watch?v=cne2kxemMAQ&list=PLfwZ-fob20cPvSQ_v1hkjto8BAPN21tLJ
📣 Follow us on social:
#WagtailCMS #Django #WagtailSpace
A custom Blender pipeline can render configurable doorknob combinations on demand or in advance, making realistic product imagery practical when a catalog has hundreds of thousands of variants; the speaker also stressed that this complements rather than replaces the photo studio. WebP images can reduce file size and estimated emissions compared with PNGs, and editors should be included in the move to newer formats; the speaker noted that WebP’s browser and design-tool support is currently stronger than AVIF’s. A small command-line tool called Pyro streamlines creating and activating Python virtual environments, while another speaker argued that XR could broaden access to education, accessibility, training, and art, and called for more open-source participation. A final planned talk about translation could not be presented because the speaker could not share their screen.
Summarised automatically from the transcript.
Automatically transcribed, so expect mistakes in names and technical terms.
Speaker 1: Sorry about that folks.
Speaker 2: Uh Well it's clearly not oh wait, I know what's going on.
Speaker 1: I'm not counting this against his time, by the way.
Speaker 2: There we go So, uh my actual talk was about what is kind of objectively a pretty boring infrastructure thing. Um This sounds boring, but it's actually the most interesting thing that I've ever worked on. MTech. com, you can go there, it's a site, sells fancy doorknobs. They sell other things also, lots of other things, but right now, just going to talk about the doorknobs. Specifically, I want to talk about the visualizer that we built for these doorknobs Because uh there are well here I think I have this is what the visualizer looks like. As you can see you can choose a A handle
Speaker 2: and then a finish for that handle, a stem, and then a finish for the stem, and then a rosette, and a finish for that rosette. And if you I really like the transitions when I'm fooling around. When you add up all the numbers, when you multiply it all out. At launch, when we were covering most of one category of products on their website, there were 743 ,000 unique uh combinations. Um and again that's not close to their whole catalog. We've launched a bit more since and we're still going Each of those ideally needs an image,
Speaker 2: and for obvious reasons it is not practical to photograph them all. Yes, but this is fine because we have Blender. Blender, not everybody might know, has a Python API. It even has a pretty good Python API You can even build Blender from source. One of the supported ways to build it from source is building it basically as a CLI tool. as or as a rather as a Python package. So it does not have a GUI. All you would do is you import the Blender Python API and you use it from a Python script and anything you can do with scripting You can do that way, and you don't need things like a screen, which is great for running it on, you know, serverless on AWS or whatever.
Speaker 2: What's going on? What did I do? Oh yes. So here you can see some of the renders that we have put together. On the left. Most you can see the render uh of just the uh just the plate, just the rosette, and on the bottom we've added a little knob And we have some invisible objects in the separate file for the plate and for the knob that we line up in order to get everything to line up correctly every time, even when things are different shapes. And then you can see the next the stuff in the middle, we've applied a brass finish to it, which is a relatively simple finish, which is why
Speaker 2: on the bottom you can see we've applied that same finish. to Suzanne. Suzanne is the blunder monkey, she is the Suz uh the blunder mascot. Um and as you can see Suzanne takes our brass finish just fine and looks like the funkiest brass monkey. This is an example of a more complicated finish. This is our oil-rubbed bronze. And as you can see, the detailing on the on the plate on the rosette is like this polished shiny bronze color. And you don't see pretty much any of that on Suzanne, even though she's got some nice edges that would maybe look nice in polished bronze, because with these, uh For every model, we need to build a custom texture.
Speaker 2: It's not like the brass texture where we can just slap it on anything. In order to get that to look right, we need to build a custom texture that corresponds to that model. And then apply it when we're using that finish with that model. And it works It gives us really good results. Like those are renders. I don't know if you can tell, but those those look like Little handles take it that you photographed in a light box, but it's not, those are computer-generated renders. And that's really cool that we do that. We do it on demand or ahead of time. on a little flask server that pulls a bunch of Blender Python code. Uh CG is awesome.
Speaker 2: Yes, but also this is hard and if we didn't have 743,000 combinations to render it would not be worth the effort. So if you are we were we have a lot of people who work in a photo studio for our the advertising thing and I wanted to be very clear this is not some tech asshole coming in and saying hey we can uh we can do your jobs better than you can And the original way we tried we wanted to do this was to have it be an interactive scene rendered on device. using something like 3. js, like uh like Don and Mira talked about, uh, turns out that you can't really do that because devices are not powerful enough. But I think what we did was pretty cool.
Speaker 2: And seeing.
Speaker 1: Thank you so much.
Speaker 2: Yes. Only mostly boring. So I can't find the stop sharing button. So somebody cut me off. Please.
Speaker 1: Well, let's see if I can sort that out because I'm going to go next. All right. Let me get the sharing going. All right, I took the uh slides optional thing to the full hilt and I'm going to uh First of all, not cheat and actually get this timer going. Alright, folks. So I'm here up here telling you today that it's time
Speaker 1: It's time to leave GIFs behind, to leave JPEGs behind, to leave PNGs behind, and come over to the side of WebP. You know, honestly you can get um anything that you want. Like so with these, like we became interested in these imaging formats, uh, mostly because Wagtail sustainability efforts have involved uh trying to sort out like what sort of more modern image formats can we support and get the biggest bang for our book. We've actually had uh WebP support around for a while, but I don't I noticed that not a lot of people are using it. And part of the reason for that is that it's taking kind of the more designer and editor-focused tools a little while to catch up. But the
Speaker 1: they're getting there and now it's time to move over. Um so you know uh I in this blog post I kind of you know um went through some of like You know, we're we already like there are definitely some things that WebP has in common with GIFs, like you know, people are already debating how it's pronounced. I say WebP, apparently the correct form is WebPi Um fight thee. You know, um it's you know that it's typical in that experience You know, but we're getting to the point where we're having some design software that is supporting WebP really, really well. So Photoshop introduced the plugin in 2023. There's now native support for it in Figma.
Speaker 1: And GIMP has had native support for WebP for the longest time. So if you're already using open source tools, then it's right there Inkspace, Inkscape also offers it as well. Like some of the other tools that are really popular, like Canva, they will import WebP , but they will still only export Sport PNJ, or that's kind of the one they're pushing people toward, which is uh a little sad. But you there are still like some pretty user-friendly ways to work around it. And uh some great options for converting your images to WebP. Now the developers in the room are like, well why would I use these when I can just switch the images on my editors without telling them I'll just put it in the code. And I'm like You should probably tell them you're doing that.
Speaker 1: Because, you know, some very savvy uh designers and editors will like look in the inspect and be like, why is this not the format I put in here? Um and they will not be particularly happy about that. But um, you know, like Part of it is like making sure that from the editor and writer level on down, uh that you're encouraging people to use these greener formats, because honestly you'll save like a lot of space. Um you'll like reduce the amount of emissions that are connected to it. So I actually did kind of this experiment um on our sustainability page on Wagtail. org. where I took all the images and measured around 569 kilobytes of images. It produced an estimated 109.
Speaker 1: 6 kilograms of carbon a year I used a uh open source tool called Image Carbon to manage that. And so I just went ahead and put them uh through like converted them to WebP and it cut it down from like five sixty nine KB to two hundred and sixty six KB. uh and produces seventy four point seven kilograms of carbon a year according to that. Like that's you know not just the benefit for the planet, but that's also a benefit for your storage and just, you know, if there's one thing that frustrates Sadmins to no end, it's managing images. You know, I suspect across all CMSs, image management. is definitely something uh along those lines.
Speaker 1: Like, you know, so why why are we holding on to these archaic formats? It's time to move on up. Uh you know, just like one other thing, other people are like, well, what about ABIF, which is even smaller and even sleeker and more format? And we do offer ABIFs support in Wagtail. You do have to do a little extra configuration to make it happen. The thing is the browser tools are not quite there yet. So the browsers don't provide as much support as they do for WebP. But for WebP, the browser support is there. The design and like you know everyday user tools are catching up. And if you need a conversion tool, one of my favorites. is actually provided by Google. They don't store the images in the cloud. Everything is done on
Speaker 1: your local side. It's called Squoosh. Because Google was had a hand in creating some of these formats, they of course created some tools to encourage you to use them. I will share the blog post in Slack. Definitely use WebP Yay. Save the earth, use webpages. All right So our next lightning talk is going to come from Mira, who is going to talk about the holodeck extended.
Speaker 1: I can zoom in. Oh, I am. Okay, good. I'm not sure. So Am I still sure? At least that was share.
Speaker 1: No.
Speaker 3: Oh. Okay. Oh my gosh. Okay. It's telling me to close it and install. Well you
Speaker 1: want to. You can go first.
Speaker 3: Yeah.
Speaker 1: All right, we're gonna switch up the lineup a little bit. Uh so Mira will be back with our favorite holodeck talk in just a moment. But first we're going to be entertained greatly by the pyrotechnic capabilities of Tim in Pyromania, not the Deaf Leopard album.
Speaker 4: So we'll see how this goes. Let me uh share my screen. Alright, hi, I'm Tim. It's great to be here. And uh I want to talk to you about Pyrominion, not the Deaf Leopard album. I use VMs a lot. I don't use Docker as much as everybody else. And creating VMs using Python or VirtualLamp has annoyed me to no end over the years because there are a bunch of different things I want in it. that didn't exist. So I did the logical thing and I wrote a bunch of bath scripts to make it work for myself and sort of released these on PyPI with a very bad installation method. That PyPI security team featuring EE and Dustin Ingram. actually called me out on and wrote me and made me take them out to lunch to look the other way to leave it up. But what I've done is created a little package here which makes my life a lot easier
Speaker 4: So I will switch over now to my terminal and show you what it does. So in the past, when I was starting a new project, I could do something like make dir my project. Cd my project and then Python 3-m VM VM or whatever I call it. And there would be a couple things that annoy me here about when it actually creates the VM. First of all, it's named VM and I then have to do this every damn time to activate it. And it just says VMv here, which isn't very helpful. And it turns out there's a command line option you can use to give it a prompt name and such, but I didn't always remember what that was. So what I did. If I deactivate this, was I automated all the stuff I regularly do into a command called Pyro.
Speaker 4: So if I create one called Pyro, this project. It will tell me there's no VM called this project and ask me if I want to create it. So I will hit Y and it will create a new VM in this directory. defaulting to vm as the directory name. You can customize that with an environment variable. But the other nice things it does here are the first thing that I always forget to do but should do when I create a new vmf which is upgrade my pip and install wheel. That's no longer done automatically. It used to be done by virtual lend wrapper and it's no longer done automatically. So I've added it to here. Also, when I activate it again in the future, if I'm in a different directory path and I now Hit Pyro This Project and you'll notice I hit the tab
Speaker 4: key and it does auto-complete. It brings me right into the proper directory for the file with a post activation hub. You can also customize these pre and post-activation hooks just like you can in Virtual MVPR by modifying these two files it automatically creates. Pre-activate. And post activate, and you'll see that all it does in post activate is change the directory to the root of your project. But here, there's more. If you don't remember the names of all your VMs, you can just type Pyro and it actually keeps track of all the VMs you've created and what directory you're in So if I wanted to activate my VM called sepia, I could just type Pyro sepia now. Or for any of the worker ones, I could type worker and start hitting tab.
Speaker 4: And it will give me my auto-complete. And there, I'm in my VM. So that's it. Pure and simple. Saves me a lot of time, saves me a lot of typing, and keeps my VM sane. Thank you very much.
Speaker 1: We 're he was asked, does it work with PyM? Sort of was the answer. Well, I think I I think Tim broke the speed record because he had a minute and 43 seconds left
Speaker 4: Yes, I was aiming for under 120
Speaker 1: seconds. Nice, nice. All right, let's bring Mira back up for the Holodeck extended
Speaker 3: Okay, so hey guys, I'm gonna talk to you more about XR. Um If you haven't realized by now, I'm an XR evangelist. I freaking love it. Um, so how many people here are fans of Star Trek? Oh yes, a lot of people. Okay, so right now, XR is probably uh in the best spot to really start getting uh closer to that type of technology. Um You if you can think it, you can build it with XR and it's also super easy, but it's not just about building the holodeck and making things cool. XR is the key to creating a more equitable future between access to education,
Speaker 3: accessibility, the creation and sharing of art, as well as revolutionizing professional training and socialization It is probably one of the best uh technologies that to just come out of like the last hundred years. Um the use effects are All the use cases are incredible. Um, I don't know if any of you guys have seen Echo, uh, the Marvel TV show that's on Hulu. One of the best uh practical use cases for accessibility and socialization was seen in uh where Fisk he created uh AR, no, MR. contact lenses to be able to communicate with Echo without actually having to know sign language.
Speaker 3: Currently there's actually a team working on sign language visual visualization. an XR that it can uh translate your hand movements while you're in um a meeting online or whether in a digital space. Um that's a cool thing. Honestly, I'm just here to rant about like all the cool stuff that you can do. and just give you reasons on why you should actually uh join the XR community. Um one, not a lot, like it is a huge group of people, but uh Not many Python users are doing it. Two, we need more people who are into open source actually getting into these technologies because right now XR technologies are kind of being closed off Um they're becoming more like pay-to-play or freemium type things
Speaker 3: and uh that's just limiting the accessibility to it, especially when it comes to like right now, you can access uh XR experiences from your phone, from your laptop. If you limit uh if you limit it um from people who are lower income and from children. It's gonna be a great disparity in knowledge as well as just uh entertainment and things that you can actually do uh throughout the world. And I d I truly believe that this is gonna be like the uh the next best thing uh when it comes to education as well as uh just professional training, it'll be a lot easier to train people on very technical subjects. It gives them visualization. And also just creation and sharing of art.
Speaker 3: It's creating a whole new renaissance of people sharing things that they never could have shared before. for and in different ways. So yeah, thank you. Just please think about it and maybe hack with us on Saturday to help bring that to that.
Speaker 1: Alrighty, I'm gonna welcome uh up our final lightning talk speaker today uh is Chuck. Who is going to tell us about Lost and Found in Translation or the Babblefish's Impossible?
Speaker 4: Oh. You know I would, but my computer's not letting me share my screen.
Speaker 1: Oh.
Speaker 4: So I actually think this is gonna have to wait till tomorrow. Because I think with these our government computers, I do not think it can share. So Will, FYI for our talk tomorrow. Uh, I think we're gonna need a different computer. Mine was the fastest.
Speaker 1: All right, all right, all right, all right. Yes, yes, there. The the lightning talk record has uh has just been set right there. Okay. Um I think that's all we have for Lightning Talks today. Now that you've seen what they are, I hope this encourages some of you to consider coming up and doing one tomorrow. You know, it would be great to uh to have some more fun topics uh to share with folks tomorrow. All right, so um that wraps up kind of our talk content for today. We're going to be heading out to a happy hour over at New Deck Tavern. We hope you'll join us for some, you know, we can get some beverages and continue to mingle and hang out.
Speaker 1: Before we walk over there though, we would like to try and get a group conference shot by the button sculpture down in front of the library. So if you could meet us all downstairs by the button, that would be great. Thank you so much, everybody.
Use Blender’s Python API in a headless setup to render images on demand or ahead of time. Some finishes require a custom texture for each model to make the result look right.
Discussed at 1:44WebP can reduce image size, storage needs, and estimated emissions, and it has broad browser support. Design tools are catching up too, with support in Photoshop, Figma, GIMP, and Inkscape.
Discussed at 9:11It creates and activates project environments, upgrades pip and installs wheel, and offers tab completion to find environments and return to their project directories. It also supports customizable activation hooks.
Discussed at 15:36The speaker describes uses including accessible communication, education, professional training, and creating and sharing art. XR can also support sign-language visualization in online meetings and digital spaces.
Discussed at 19:09Note: We understand that names change, people change, and bodies change. We respect each individual's journey and privacy. If you have any concerns about a video or need us to remove content, please don't hesitate to contact us. We will handle your request with care and promptly address any issues.
Published July 19, 2024
Published July 19, 2024
Published July 19, 2024
Published July 19, 2024
Published July 19, 2024
Published July 19, 2024