Jump to content

User talk:Cmglee

From Wikimania 2016 • Esino Lario, Italy
Latest comment: 8 years ago by Cmglee in topic Generating SVGs with Blender

imagemaps

Hi, what’s the purpose of your edits in Venue and User digest presentations? Imagemaps are useful, but imho only if you define different links for different areas of the embedded file. Regards --Schniggendiller (talk) 01:38, 31 January 2016 (UTC)Reply

Hi Schniggendiller,
Thanks for organising Wikimania and your feedback. As almost all the attendees are not familiar with Esino Lario, the interactive map will allow them to find their intended destination more easily. The clickable parts link the names and photographs of the venues to their locations on the map, so they needn't match the small numbers.
I agree with you that it would even be more useful if they link to more information about these venues but such info is as yet unavailable. I'll update the map when it is. Alternatively, if you can suggest Wiki or external pages, I can add them right away.
Cheers,
Cmglee (talk) 13:29, 31 January 2016 (UTC)Reply

Generating SVGs with Blender

I loved the talk! Thank you for your great work! I didn't get a chance to speak with you at length but you may benefit from an evaluation of the latest Blender SVG exporter. I haven't explored it much myself but, given Blender's rich Python API and the many 3D models available, it might be worth checking out for your own interest and also for folks preferring to draw in CAD software. More here:

Thanks! Niedzielski (talk) 15:42, 25 June 2016 (UTC)Reply

Thanks, Niedzielski. That's really useful to know when I need to create vector drawings from 3D models. Do you use Blender much? I haven't used it much, and use POV-Ray instead. Do you know of any vector exporter for POV-Ray? Cheers, Cmglee (talk) 09:48, 26 June 2016 (UTC)Reply
o/ Hello, Cmglee! Sorry, I missed this message somehow. I haven't used POV-Ray and don't know anything about it :) I'm not yet very capable with Blender but I hope one day I can express myself easily with it.
I experimented a little more with those Blender SVG tools I mentioned. It seems their usefulness is somewhat limited to line drawings which is unfortunate. Maybe you will find them applicable to something specific but it might be better to focus on other tooling for now.
I decided to also try the Python API to generate an array of PNGs which worked much better. It was daunting at first (I'm not a Python guy and still learning Blender) but quickly rewarding. I made a die and for each face, rotated it and set a keyframe. In about 30 lines of Python, I was able to iterate over the keyframes and render each. You can imagine the output being similar to your military vehicle animation from the presentation. I'm not sure if you will find it useful but I could imagine generating much more complex models and animations with a little practice.
Thanks again for the inspiring talk! Niedzielski (talk) 04:37, 3 July 2016 (UTC)Reply
Thanks, you're most welcome, and no worries, Niedzielski! That's very clever doing the animation by changing the image's xlink:href.
It's a pity only line drawings are output, though it's understandable that SVG can't do proper 3D shading using just linear and radial gradients. I suppose that limits it to flat shading – shading using gradients by hand likely won't work for a complex animation as it's difficult to get frames to match. This page describes a tool to export a whole animation, but I haven't tried it.
I was tempted to embed the PNGs as Base64 in the SVG to make it standalone, but thought I should check with you before uploading it to Commons. Nevertheless, if you've either views of a 3D object, or a cyclic animation, let me know if you'd like me to convert it into an SVG similar to this one.
Cheers,
Cmglee (talk) 23:49, 3 July 2016 (UTC)Reply
The die was just for demo purposes. You are of course welcome to use it but I can't imagine it being too useful.
As an aside, one thing I'd like to explore as a personal interest are realistic looking web interfaces. For example, this. They use a big sprite sheet and I think just offset into it. I'd like to experiment with using an SVG (which remind me a lot of web components) for the same thing. Anyway, I'm having fun learning! o/ Niedzielski (talk) 02:10, 4 July 2016 (UTC)Reply
Thanks, I thought so; I came up with a method to add randomness to an SVG, which is normally deterministic (for example, for a game): One can have a "Roll" button covered with a grid of many invisible triggers, each grouping triggering a different result. Assuming that the user cannot click at precisely the same trigger, the result appears to be random. Even better, the triggers can be rapidly moved up and down etc so that the trigger at any cursor position depends on time. The triggers can be of different sizes to give each result different probability. I'll make a prototype one of these days.
I've seen the sprite sheet idea used on web pages to avoid loading multiple images. I think updating the translation (coordinate) of an element requires SMIL or JavaScript, though, so is not supported by Internet Explorer. I'd love to learn the outcome of your experiments! Cheers, Cmglee (talk) 22:08, 4 July 2016 (UTC)Reply
Hi @Niedzielski: In case it's of any interest to you, I made a demo of random event triggering in SMIL. Cheers, Cmglee (talk) 20:42, 9 July 2016 (UTC)Reply
o/ @Cmglee: very, very cool as usual!! I especially appreciate the developer option to "show triggers" :) I also like the usage of Unicode symbols for icons.
I have been kind of exploring other areas lately. I have a personal interest in mixing web tech with native apps, mostly through Electron (basically bundling a webpage with Chromium; list of example apps; literal usage on an arbitrary webpage]). It seems kind of silly but I think when done right it can be very useful. It makes me happy to think how easy it is for people to write static webpages and I would like to see people make native app experiences just as easily.
I've been experimenting with CSS 3D animations for one such interface. They probably aren't very well adopted by many browsers but I've just been kind of focusing on it for Electron usage and hope to figure out other browsers later. Presently, I am taking a sprite sheet and chopping it up per the knob example mentioned, and pasting it onto separate HTML elements which serve as the faces of a box (kind of like this). I can then rotate the box. This is all HTML and CSS but it's currently so hacky and fragile that I'm not sure what to do with it yet. I think I'll see if I can generalize it as a web component and maybe it'll feel a little less so. Niedzielski (talk) 21:24, 9 July 2016 (UTC)Reply
Thanks for your kind words, Niedzielski. Pity the Unicode icons don't appear in the Commons thumbnail :-(
Your work with Electron sounds interesting, but I'm not quite sure what Electron is. Is it a runtime system like Adobe AIR or browser-based platform like JQuery?
I presume you've encountered such demos before, but if not, here's an example of a rotating 3D box using CSS. I feel such interfaces are rather gimmicky, though, and are harder to use compared to, say, a 2D tabbed interface which lets any tabs be accessed with one click, and the user needn't remember which side the intended control has rotated to (even if the rotating cube automatically rotates the current face the right way up). Is there a strong reason for a rotating cube? Cmglee (talk) 22:34, 9 July 2016 (UTC)Reply
Electron is essentially a distributable browser. If you wanted to mix native and web content, or just wanted to provide a more native like experience using web tech, you might build an Electron app, which would be the browser and some web pages. An example would be a music player built in HTML that also has more native capabilities like file system access, global keyboard shortcuts, and additional audio codecs. It's kind of similar to a WebView on Android in that you can mix web and native code. GitHub built the Atom editor with Electron and then open sourced Electron as a stand alone framework. There's some additional examples in that list I mentioned. I haven't used AIR so I can't comment on that but I think jQuery is more of a JavaScript supplement framework. Electron is a framework but, as a browser, also the platform itself in a way.
The 3D box link you referenced didn't come through. In general, I definitely agree with you about it being gimmicky (and the implementation is too!). However, I mentioned my personal interest in providing more realistic interfaces. In this case, I'm experimenting with providing an interface to a collection of things. For example, a collection of vinyl records, books, or old video games. I believe some of the impression of the piece is actually in the packaging(!) and am testing whether 3D can kind of convey that. There's a pretty nice example of something similar here. I think WebGL is a bit heavier than I want so I've been sticking to CSS hacks. I think it will be difficult to do well so it's just an experiment for now. Niedzielski (talk) 23:35, 9 July 2016 (UTC)Reply
Thanks for explaining Electron. It sounds to me like Microsoft's old ActiveX, useful for automating tasks but caused privacy concerns. I like your virtual bookshelf – if only page-turns were also simulated. A realistic interface which I think is really useful is an interactive globe. Of course, there are WebGL versions, but someone has created one in CSS too. Best wishes in your experimentation, Cmglee (talk) 21:10, 10 July 2016 (UTC)Reply
Hi @Cmglee:! I haven't done anything noteworthy since we last spoke but I happened to notice this SVG article trending on Hacker News and thought of you. Check it out some time. \o Niedzielski (talk) 02:49, 7 September 2016 (UTC)Reply
Hi @Niedzielski:, thanks for the update. That's an interesting use of an SVG filter. I haven't much either, except reworking my GIF-animation-to-interactive-SVG converter to work with a set of individual frames and used it on this memorial I shot in Milan: File:Leonardo_da_Vinci_monument_in_Milan.svg. Would you know why the image doesn't appear in the thumbnail? Cheers, Cmglee (talk) 17:38, 7 September 2016 (UTC)Reply
Hm @Cmglee:, I don't know offhandedly but I suspect the SVG to thumbnail process uses command line classics like ImageMagick that probably don't support more advanced features :| You might need to generate these thumbnails by hand either when originally creating the SVG or opening the SVG in a browser and screenshotting an element hierarchy :/ Niedzielski (talk) 22:25, 7 September 2016 (UTC)Reply
Simplified principle of the 2016 Olympic cauldron
Thanks for the link, @Niedzielski: – surprised to see a link to my talk! I guess you're right about the renderer; I checked that the SVG should still render without the interactive bits. Guess I'll leave it for now... Cheers, Cmglee (talk) 23:00, 10 September 2016 (UTC)Reply
P.S. This might be stale news, but since we started with rendering SVGs from Blender, I made this animation in POV-Ray for what it's worth. It's likely to complex to convert to SVG, but feel free to play with it if you like.