Re: [Bf-committers] Blender roadmap article on code blog
On Monday, 1 July 2013 at 20:21, David Jeske wrote: On Sat, Jun 29, 2013 at 7:41 AM, Ton Roosendaal t...@blender.org (mailto:t...@blender.org) wrote: 1) Include opt-in usage and automatic crash reporting in *every* blender build, and a web dashboard to live usage/crash stats to devs and the community. I always wondered what other projects/companies do with such reports. Is there a public example where I can see the handling of such report logging, with evidence for how this is being used well, the benefits? Or is it just for statistics? Billrey's blender blog recently posted a link to this old but excellent talk on Firefox UI design, from 2011. At 38 minutes, it talks about their Usage Statistics Heat Map, and how they used it to streamline the option locations when redesigning menus. http://www.youtube.com/watch?v=hMDBwa4huUY#at=302 The whole talk is really worth watching.. it's both an interesting visualization of some common UI design principles, and Firefox's approach to enabling open-source innovation by establishing clear design-rules to empower and enable more freedom within those design rules. There are a few other examples that I know of. Firstly, there are some good papers from Autodesk Research that talk in detail about how they use data from their Customer Involvement Program (read: usage data collection) to prototype and verify new features. A recent work is Patina [1], where they use heatmaps, like in the Firefox talk by Faaborg. However, they present these heatmaps to the user so that the user becomes aware of the features that other people (from the same community) use. This allows them to discover features of complex software. Another example is CommunityCommands [2] in which a user is profiled through their command usage and by means of a collaborative filtering technique new commands are recommended to the user, based on the type of usage. Chronicle [3] is worth mentioning as well, because it uses this type of data to allow the user to query and retrieve information from the design process of a document. Then there's work by Terry [4] who instrumented The Gimp to collect usage data with an open source ethos. The analysis of it isn't fully explored though. There's a good overview of how to employ usage data in usability studies by Hilbert and Redmiles [5]. Although the paper is from quite a while ago it introduces many aspects one has to think about when doing this kind of usability work. Another good example is from Heer and others [6] where they describe how they used usage data to understand user behaviour and manage to turn this into concrete improvements of their visualisation software. Microsoft also collects usage data [7], but I haven't found (also haven't looked too hard) many details. I personally think there is a lot of value in remotely collected usage data for a) users, as can be seen from the Autodesk research, and b) developers, as can be seen from [7]. Apologies for the barrage of references. Cheers, Vincent [1] http://autodeskresearch.com/publications/patina [2] http://autodeskresearch.com/publications/communitycommands [3] http://autodeskresearch.com/publications/chronicle [4] Terry, M., Kay, M., Van Vugt, B., Slack, B., and Park, T. Ingimp: introducing instrumentation to an end-user open source application. [5] Hilbert, D.M. and Redmiles, D.F. Extracting usability information from user interface events. ACM Computing Surveys (CSUR) 32, 4 (2000), 384–421. [6] Heer, J., Mackinlay, J., Stolte, C., and Agrawala, M. Graphical Histories for Visualization: Supporting Analysis, Communication, and Evaluation. Visualization and Computer Graphics, IEEE Transactions on 14, 6 (2008), 1189–1196. [7] https://www.microsoft.com/products/ceip/EN-US/default.mspx ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
Am 29.06.2013 16:41, schrieb Ton Roosendaal: - Where Python is too slow (I/O), we can also improve the api a lot still. For our UI now it's more than fast enough. There are two areas where it's notably slow: user preferences input and addon UI - due to the high number of layout elements I guess. However, it's acceptable in this area. Where python performance really bugs me is I/O. Due to GIL, python can't make use of multi-core systems (runs with max. 25% of an i5 with two real cores / four virtual cores). And multiprocessing isn't really applicable, since blender doesn't allow multiple threads accessing the RNA system without crashes. Looking at the OBJ importer, the real bottleneck is the mesh splitting code. It takes a serious amount of time for gigabyte-sized OBJs, and a huge amount of memory (like 500 MB OBJ, 6 GB mem). Not sure if one could optimize the python code, but a C/C++ importer would always be superior (see Meshlab speed!). Any plans on merging assimp support from Bratwurst into trunk? ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
Hi, Wouldn't it be possible to implement a c/c++ importer and expose it to the python api in a compatible way? The obj file structure is quite straightforward and should be easy to implement. But I have no experience with blenders python interface. /Jürgen Am 02.07.2013 um 19:45 schrieb CoDEmanX codem...@gmx.de: Am 29.06.2013 16:41, schrieb Ton Roosendaal: - Where Python is too slow (I/O), we can also improve the api a lot still. For our UI now it's more than fast enough. There are two areas where it's notably slow: user preferences input and addon UI - due to the high number of layout elements I guess. However, it's acceptable in this area. Where python performance really bugs me is I/O. Due to GIL, python can't make use of multi-core systems (runs with max. 25% of an i5 with two real cores / four virtual cores). And multiprocessing isn't really applicable, since blender doesn't allow multiple threads accessing the RNA system without crashes. Looking at the OBJ importer, the real bottleneck is the mesh splitting code. It takes a serious amount of time for gigabyte-sized OBJs, and a huge amount of memory (like 500 MB OBJ, 6 GB mem). Not sure if one could optimize the python code, but a C/C++ importer would always be superior (see Meshlab speed!). Any plans on merging assimp support from Bratwurst into trunk? ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
On Sat, Jun 29, 2013 at 7:41 AM, Ton Roosendaal t...@blender.org wrote: 1) Include opt-in usage and automatic crash reporting in *every* blender build, and a web dashboard to live usage/crash stats to devs and the community. I always wondered what other projects/companies do with such reports. Is there a public example where I can see the handling of such report logging, with evidence for how this is being used well, the benefits? Or is it just for statistics? Billrey's blender blog recently posted a link to this old but excellent talk on Firefox UI design, from 2011. At 38 minutes, it talks about their Usage Statistics Heat Map, and how they used it to streamline the option locations when redesigning menus. http://www.youtube.com/watch?v=hMDBwa4huUY#at=302 The whole talk is really worth watching.. it's both an interesting visualization of some common UI design principles, and Firefox's approach to enabling open-source innovation by establishing clear design-rules to empower and enable more freedom within those design rules. ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
Hi David, I am confused. What takes you so long to get stuff to build? It took me half an hour to get blender to build on MSVC 2008 with CMake the first time. ~10 minutes download time. ~10 minutes finding out what to click in CMake-GUI ~10 minutes build time. Now when I change blender code it is a matter of 3 Minutes from pressing the compile button to testing the code. Incremental builds are great ;) Am 30.06.2013 um 05:13 schrieb David Jeske dav...@gmail.com: When I fix bugs in unfamiliar projects, I spend 90% of my time getting it to build and playing sherlock holmes tracking down weak-linkages like dynamic-typed variables and weak-linkages (like strings used as enums in C) -- and 10% of my time actually trying to understand or fix code. In strong typed code (C, C++, C#, TypeScript, etc) and a modern IDE (Visual Studio or one of its many clones), that 90% shrinks dramatically, as I can see, understand, and explore the types of variables immediately. I hover-over a variable in the IDE it shows the type. I hit goto declaration it takes me to the type-declaration. No project wide grep or guessing at the type of that dynamic-typed a paramater. How about Python Traits? Note I have no idea how difficult it would be to use Traits as a wrapper for Blender's API, although Enthought does provide a Traits based wrapper for VTK so I'm sure it would be possible. I'm not very familiar with Traits, but from a quick look it appears to be a run-time assignment validation and format coercion package. It does not appear to contain any compiled time variable type information, or the ability to do type-aware code-navigation or completion. ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
On Sun, Jun 30, 2013 at 12:17 AM, Jürgen Herrmann shadow...@me.com wrote: I am confused. What takes you so long to get stuff to build? Mostly because when unfamiliar with the tools and blender build, each small mistake caused a 15-20 minute build cycle on my laptop.. the time added up fast. If I was setting it up *again* on MacOS I think it would only take me 30-40 minutes like for you. Here are some details.. 1. I made the mistake of configuring the build flags like the instructions said. Turning on a couple standard blender features which are not on in the default build, like ffmpeg, which then caused build problems, perhaps because they require additional installs. This cost time mucking with CMake, clean, re-building. I think this was probably 30-40 minutes. 2. I am unfamiliar with the toolchain (XCode). There is an instruction to switch the build target from all to install. I'm very unfamiliar with the XCode UI, so the action I took was not the correct way to switch the build-target. (IMO the XCode UI is very unintuitive here) There is even a screenshot in the wiki-page, but my newer XCode looks newer, and I didn't understand what the screenshot was saying. I built and cleaned all-build several times trying to understand why it wouldn't launch.. until I finally realized I wasn't building the install target correctly. Probably 70-90 minutes of scratching my head, repeated clean/rebuilding. 3. After it built and ran, it took me quite a while to find the debug-launch blender target in the XCode UI.. because instead of being near the all_build and install targets, it's near the bottom of a build-targets popup menu with ~200 things in it -- requiring hunting and scrolling down to find it. I'm going to update the wiki instructions page slightly to help make these steps more clear for someone unfamiliar with XCode. On a related note, a friend of mine is still fighting the windows build because it's having some issue colliding with the version of python he has on his machine for Google App Engine development. ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
On 29/06/2013, at 3:47 PM, Campbell Barton wrote: Mono follows an MS spec for the language runtime (CLR), not sure what the second program you refer to is. At least the technology isn't owned by MS and its open-source. People may be wary of using MS derived technology but from what I can tell Mono wouldn't tie us to MS any more then Java would to Oracle. Unlike the way Java was setup by Sun, Microsoft owns patents required for the CLR C#. Yes, the source code is out in the wide world, but even the FSF has been clear about the threat Microsoft's patents poses to platforms that use the C#. Personally, I don't think that Microsoft gives a damn about Blender (and agree Mono would not tie Blender to them), but should they start to use their patents against someone they *do* care about, it's possible that open-source projects using C#/CLR patents might be caught in the crossfire. Not trying to start a flamewar or anything, and I've used C# in a few projects now (so I'm not adverse to it's use per se), but there are reasons some folks are wary of using C#/Mono in an cross-platform, open-source project. Microsoft uses it's patents aggressively in it's commercial role and there it isn't unreasonable to assume they would use the C#/CLR ones if they see the need. -- Benjamin Tolputt ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
Hi, Been busy all week with other stuff, interesting long thread :) Quick observations below: 1) Include opt-in usage and automatic crash reporting in *every* blender build, and a web dashboard to live usage/crash stats to devs and the community. I always wondered what other projects/companies do with such reports. Is there a public example where I can see the handling of such report logging, with evidence for how this is being used well, the benefits? Or is it just for statistics? 2) Increase community leverage, sharing, library asset encapsulation -- more bridges between pro-artists and amateur blender pilots. snip Good ideas, for me that's part of the asset project in our roadmap. 3) Refine and add more end-to-end capabilities. IMO compositing and VFX have a multiplicative not additive effect on Blender's utility. Somehow having merely reasonable integrated 3d+compositing+vfx is better for some tasks than having non-integrated best-of-breed tools for each. snip Lots of this is also just because how things evolved. One by one. Not as part of a grand master plan. Although I agree with the benefits you mention, I'm very wary for the consequences of simply adding it. We have to keep track of (existing) design focus, stability, keeping it manageable, etc. For example: the Sequencer code now can get a full makeover without breaking the rest of Blender. It's highly needed to do that. Solutions for having tracking/compositing/sequencer work together are there too. What I'd like to explore is some kindof image-depsgraph. A user then can manage image dependencies in Blender like: render to image, which gets used as a texture in other render, which goes to compositor, which goes into a VSE, etc etc. 4) Incorporate an extension language which can support Intellisense, type-checking, and fast execution. A big goal is to make scripting easier with Intellisense. Another goal is to enable both new blender additions and old code to be in a solid, typechecked, memory-managed high-level-language. Until recently, I wished for .NET/Mono/C# integration, like some people wished for in Maya before they decided on Python. However, I think there is a new exciting option which is lighter weight and may fit better, and that is TypeScript + Javascript-V8. (Typescript http://www.typescriptlang.org/is a class-based Javascript facade with optional-static typing, and Javascript-V8 is 10-30x fasterhttp://benchmarksgame.alioth.debian.org/u64/benchmark.php?test=alllang=python3lang2=v8data=u64than CPython 3). Obviously this would be done in a way which leverages the investment in Python exports/apis. I can't add much to what has been said in other replies here. I also don't know any of these languages... but to me it seems we're really not doing that bad now. I don't see evidence Python is not satisfying current (technical) users either. - Where Python is too slow (I/O), we can also improve the api a lot still. For our UI now it's more than fast enough. - For Node plugins where speed is crucial (render, compo, future particle, modifiers, etc) we should explore first what already have. OpenCL, OpenShading, LLvm, ... or just a good C/C++ api. -Ton- ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
On Sat, Jun 29, 2013 at 7:41 AM, Ton Roosendaal t...@blender.org wrote: 1) Include opt-in usage and automatic crash reporting in *every* blender build, and a web dashboard to live usage/crash stats to devs and the community. I always wondered what other projects/companies do with such reports. Is there a public example where I can see the handling of such report logging, with evidence for how this is being used well, the benefits? Or is it just for statistics? I'm not aware of anyone who publishes information about how much their own software crashes, this would probably be very hard to manage PR on. I will say that at the large well known companies I've worked for, we tracked and graphed usage, error, and performance stats for nearly-all server-side and most client side software (opt-in on the client side). When the graphs all look good they are not used much, but when odd things start happening, the graphs are often the only way to know something is going wrong. It also helps avoid bad priorities, because the data is more statistically relevant than one person telling you XYZ when there are thousands or millions of users. As for the detailed crash dumps, and stack backtraces.. The utility of these is very related to how much correlation there is between the stack and the actual bug. Parasitic memory-stomp bugs can't be found with these reports. However, many other types of bugs become quite obvious by correlating the stacks and looking at a few user-written descriptions. I have more personal experience with this for server-side than client-side, but then I have been more involved with server-side than client-side development. The real kicker is, IMO, usage, crash, and performance reporting has more value for the application than ANY other similar amount of feature work -- because it tracks activity of all code. Reliability and Performance are two of software's most important features, so it is very useful to pay attention to them. Solutions for having tracking/compositing/sequencer work together are there too. What I'd like to explore is some kindof image-depsgraph. A user then can manage image dependencies in Blender like: render to image, which gets used as a texture in other render, which goes to compositor, which goes into a VSE, etc etc. That's an excellent vision. It feels very much like blender as an art build pipeline. AFAIK, big shops setup that kind of stuff with builds and scripts. Doing it inside blender could have a bunch of great advantages (a) interactivity, (b) easier sharing, (c) more accessible to artists who are not programmers... among others.. ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
Campbell Barton wrote theres not much incentive to rewrite - only for the sake of cleaner code. I totally understand and wouldn't argue they should be, never touch a working system and all that. Having the TODO make pep 8 compliant comment in the header is also a good hint that they are perhaps not the best inspiration for new code. Campbell Barton wrote Afraid every time I try do something non-trivial in someone else's open-source project (non-blender), its pretty steep learning curve too, getting from some template/example code to something useful is just tricky and theres so much assumed knowledge about how components work together, what kind of patterns your expected to use etc... ...clip... For functions local to a file they often aren't commented much. I can see why you might like comments here but I would leave this up to the author of each script to choose how much to comment internal functions, classes etc - rather then defining a policy As you note, one of the hardest parts of getting your head around a complex, unfamiliar, code base is figuring out all the unstated assumptions about component interactions and design patterns. The only way I can do that is by diving in to the existing production code. Having the API documented is great but it is no substitute for being able to see how people intimately familiar with it are using it. Sure I can work out what is going on by reading the code, but having consumer functions that are using the API well document goes a long way towards flattening out the learning curve. David Jeske wrote On Fri, Jun 28, 2013 at 1:35 PM, Knapp lt; magick.crow@ gt; wrote: I think it would be nice to see a typed scripting option How about Python Traits? Note I have no idea how difficult it would be to use Traits as a wrapper for Blender's API, although Enthought does provide a Traits based wrapper for VTK so I'm sure it would be possible. -- View this message in context: http://blender.45788.x6.nabble.com/Blender-roadmap-article-on-code-blog-tp109587p110358.html Sent from the Bf-committers mailing list archive at Nabble.com. ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
When I fix bugs in unfamiliar projects, I spend 90% of my time getting it to build and playing sherlock holmes tracking down weak-linkages like dynamic-typed variables and weak-linkages (like strings used as enums in C) -- and 10% of my time actually trying to understand or fix code. In strong typed code (C, C++, C#, TypeScript, etc) and a modern IDE (Visual Studio or one of its many clones), that 90% shrinks dramatically, as I can see, understand, and explore the types of variables immediately. I hover-over a variable in the IDE it shows the type. I hit goto declaration it takes me to the type-declaration. No project wide grep or guessing at the type of that dynamic-typed a paramater. How about Python Traits? Note I have no idea how difficult it would be to use Traits as a wrapper for Blender's API, although Enthought does provide a Traits based wrapper for VTK so I'm sure it would be possible. I'm not very familiar with Traits, but from a quick look it appears to be a run-time assignment validation and format coercion package. It does not appear to contain any compiled time variable type information, or the ability to do type-aware code-navigation or completion. ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
I think that you've hit upon two of the important factors here: - familiarity - discoverability To which I would also add - refactorability (is that a word? :-) Those familiar with a project might not see the value in strong typing simply because it doesn't add much to their personal experience. They have less need to explore types, usage locations, etc., because they're already familiar with them. However, strong typing does add an additional level of confidence when re-factoring, which can even benefit those who are intimately familiar with a code base. Anecdotally, you hear about this from people who have had to re-factor Python... things like You really come to appreciate your test suite when refactoring, etc. The reliance on test suites arising because many compile-time checks are impossible with dynamically-typed languages. Jonathan Merritt. On Sun, Jun 30, 2013 at 1:13 PM, David Jeske dav...@gmail.com wrote: When I fix bugs in unfamiliar projects, I spend 90% of my time getting it to build and playing sherlock holmes tracking down weak-linkages like dynamic-typed variables and weak-linkages (like strings used as enums in C) -- and 10% of my time actually trying to understand or fix code. In strong typed code (C, C++, C#, TypeScript, etc) and a modern IDE (Visual Studio or one of its many clones), that 90% shrinks dramatically, as I can see, understand, and explore the types of variables immediately. I hover-over a variable in the IDE it shows the type. I hit goto declaration it takes me to the type-declaration. No project wide grep or guessing at the type of that dynamic-typed a paramater. How about Python Traits? Note I have no idea how difficult it would be to use Traits as a wrapper for Blender's API, although Enthought does provide a Traits based wrapper for VTK so I'm sure it would be possible. I'm not very familiar with Traits, but from a quick look it appears to be a run-time assignment validation and format coercion package. It does not appear to contain any compiled time variable type information, or the ability to do type-aware code-navigation or completion. ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
On Fri, Jun 28, 2013 at 7:13 AM, Jed Frechette jedfreche...@gmail.com wrote: On Thu, 27 Jun 2013 12:33 Campbell Barton ideasma...@gmail.com wrote On Thu, Jun 27, 2013 at 10:58 AM, Jed jedfreche...@gmail.com wrote: I agree about the existing Python code being hard to read. Am happy to take criticism for python code, but curious which parts you found problematic to follow. One particularly crufty bit I was looking at recently is the Smart UV Project module (http://preview.tinyurl.com/ldujq8r). None of the functions have doc strings, large portions of the code are commented out and presumably obsolete, unusual naming conventions, etc. The Lightmap UV unwrapping module is much better but also doesn't have any doc strings. Both these scripts suffer from 2.4x - 2.5x-rna - 2.6x-rna-ngons. 2.5x+ api's for mesh manipulations use RNA and are very limited, 2.4x was more flexible and had more useful functionality built-in. However it was always my intention with 2.5x to use bmesh-python whenever mesh editing needed to be done from Python, it just played out that by the time we got this BMesh-API available, the scripts you mention were working with RNA-API and theres not much incentive to rewrite - only for the sake of cleaner code. If I needed to make any significant changes to these script's Id rewrite them for sure. To see the the difference between a script written using RNA-API's and BMesh-API, check these 2 scripts (both do a vertex dirt-map effect and are fairly similar) rna: https://svn.blender.org/svnroot/bf-blender/trunk/blender/release/scripts/startup/bl_operators/vertexpaint_dirt.py bmesh: https://svn.blender.org/svnroot/bf-extensions/contrib/py/scripts/addons/oscurart_worn_edges_map.py I've tried to include examples in the text editors templates to help give users some samples of working scripts, is there some area you think should be added to here that would help? The examples are very helpful, however most of the time my questions are more Why than How and inevitably about some corner case that isn't quite covered by one of the cookbook recipes. I don't know that this is necessarily a documentation issue as much as I simply haven't committed enough time to fully understanding how Blender's internals work. This certainly goes to David's point about the difficulty of diving in for casual users, unfortunately I don't know how to bypass the learning curve. Fortunately, the last time I spent much time on scripting Blender was ~3 months ago and I remember thinking at the time that the more conceptual API documentation had improved since the last time I looked at it. Afraid every time I try do something non-trivial in someone else's open-source project (non-blender), its pretty steep learning curve too, getting from some template/example code to something useful is just tricky and theres so much assumed knowledge about how components work together, what kind of patterns your expected to use etc... Not to be dismissive and put this in the `too hard` basked, but if new devs want to contribute to an advanced graphics app, they can expect to have to get their hands dirty a bit... (unless we attempt to hide details and expose simple API's - 2.4x attempted this with its Python API and it didn't work so well, of course we could try again). Nevertheless, your point is well taken. That our existing code is not always so readable and it makes it harder to learn by example. I had a quick look over google's standards and while we don't follow all, a lot of them are aligned with pep8 (and common sense), if you think there are some we could benefit from, I'd be interested to know which ones specifically. I like that Google's standard is explicit about how to document things like function arguments and return values, whereas PEP 257 doesn't really give any guidance other than do it. Numpy's docstring style guide is also quite good about this. Currently we use sphinx style comments, but this is only used for API functions in modules intended to be re-used by other scripts, eg: http://www.blender.org/documentation/blender_python_api_2_67_release/bpy.utils.html For functions local to a file they often aren't commented much. I can see why you might like comments here but I would leave this up to the author of each script to choose how much to comment internal functions, classes etc - rather then defining a policy (for the moment at least). I might quibble with some of Google's choices but the main things I like about it for my own projects are that: it is in one place, is pretty comprehensive, I can point someone else to it and expect a reasonable result, and I didn't have to write it. I know Blender has a style guide for C code and it would probably be good to have one for Python, even if it is just a paragraph saying Follow PEP 8 257. Yep, this should be set out more clearly in our wiki docs (added to my todo list) Integrating ipython is fairly straightforward I
Re: [Bf-committers] Blender roadmap article on code blog
Yes, there is a performance cost for Mono/V8 relative to C, but for many types of code that gap is quite small, about 1-3x Speaking only as an artist: LOL I dare you to go to BlenderArtist and tell them you have decided to include 2 Microsoft programs in Blender that will slow down there render times by 300%! They are dancing in the streets there because of a 20% speedup in cycles that might be coming!! Need I even talk about the hate of Mono correct or not? -- Douglas E Knapp Creative Commons Film Group, Helping people make open source movies with open source software! http://douglas.bespin.org/CommonsFilmGroup/phpBB3/index.php Massage in Gelsenkirchen-Buer: http://douglas.bespin.org/tcm/ztab1.htm Please link to me and trade links with me! Open Source Sci-Fi mmoRPG Game project. http://sf-journey-creations.wikispot.org/Front_Page http://code.google.com/p/perspectiveproject/ ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
On Fri, Jun 28, 2013 at 1:35 PM, Knapp magick.c...@gmail.com wrote: Yes, there is a performance cost for Mono/V8 relative to C, but for many types of code that gap is quite small, about 1-3x Speaking only as an artist: LOL I dare you to go to BlenderArtist and tell them you have decided to include 2 Microsoft programs in Blender that will slow down there render times by 300%! A language used for UI extension and tools does not affect render-times. OSL is already the way to user-extend cycles and that is not part of the discussion. Python is allowed for 2d compositing nodes now. Using C# or TypeScript/V8 for these nodes would speed them up 3-10x. However, don't get too excited, because a single composite node, even in Python, is probably only 2-20% of the total composite time and only 0.1-0.5% of total render time if there is a 3d scene. ..so I think your concern about how this would somehow slow down rendering is mis-placed. It wouldn't. That said, there are many good points in this discussion about extension languages. I think it would be nice to see a typed scripting option, but I also agree that getting some of the benefits I hope for would take lots more than adding the language option. I'm going to have to think on this some more, and for now I'm removing/replacing this item in my personal roadmap wishlist with a different one... 4) Make Blender UI, launch-state, splash more friendly to users who wish to use only a subset of functionality (without compromising the power users). The first case-in-point, 2d-compositor-only users. -- Why? -- Blender is arguably one of the most powerful open-source 2d compositors. However, the UI doesn't make this apparent or easy to do without understanding 3d rendering. Making blender more friendly to these users will mean more blender users, more potential developers, and more goodness. Easier said than done, but I think it's worthy. ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
eeh, there is some misinformation here... On Sat, Jun 29, 2013 at 7:54 AM, David Jeske dav...@gmail.com wrote: On Fri, Jun 28, 2013 at 1:35 PM, Knapp magick.c...@gmail.com wrote: Yes, there is a performance cost for Mono/V8 relative to C, but for many types of code that gap is quite small, about 1-3x Speaking only as an artist: LOL I dare you to go to BlenderArtist and tell them you have decided to include 2 Microsoft programs in Blender that will slow down there render times by 300%! Mono follows an MS spec for the language runtime (CLR), not sure what the second program you refer to is. At least the technology isn't owned by MS and its open-source. People may be wary of using MS derived technology but from what I can tell Mono wouldn't tie us to MS any more then Java would to Oracle. A language used for UI extension and tools does not affect render-times. OSL is already the way to user-extend cycles and that is not part of the discussion. Python is allowed for 2d compositing nodes now. Using C# or TypeScript/V8 for these nodes would speed them up 3-10x. However, don't get too excited, because a single composite node, even in Python, is probably only 2-20% of the total composite time and only 0.1-0.5% of total render time if there is a 3d scene. PyNodes don't allow python to be used for blenders existing C++ compositor, See: http://blender.stackexchange.com/questions/553/is-it-possible-to-create-a-compositor-node-with-pynodes-that-outputs-camera-clip However there has been some talk of using OSL for compositor nodes, apparently it could be supported but I dont know details here. ..so I think your concern about how this would somehow slow down rendering is mis-placed. It wouldn't. That said, there are many good points in this discussion about extension languages. I think it would be nice to see a typed scripting option, but I also agree that getting some of the benefits I hope for would take lots more than adding the language option. I'm going to have to think on this some more, and for now I'm removing/replacing this item in my personal roadmap wishlist with a different one... 4) Make Blender UI, launch-state, splash more friendly to users who wish to use only a subset of functionality (without compromising the power users). The first case-in-point, 2d-compositor-only users. -- Why? -- Blender is arguably one of the most powerful open-source 2d compositors. However, the UI doesn't make this apparent or easy to do without understanding 3d rendering. Making blender more friendly to these users will mean more blender users, more potential developers, and more goodness. Easier said than done, but I think it's worthy. ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
On Thu, 27 Jun 2013 12:33 Campbell Barton ideasma...@gmail.com wrote On Thu, Jun 27, 2013 at 10:58 AM, Jed jedfreche...@gmail.com wrote: I agree about the existing Python code being hard to read. Am happy to take criticism for python code, but curious which parts you found problematic to follow. One particularly crufty bit I was looking at recently is the Smart UV Project module (http://preview.tinyurl.com/ldujq8r). None of the functions have doc strings, large portions of the code are commented out and presumably obsolete, unusual naming conventions, etc. The Lightmap UV unwrapping module is much better but also doesn't have any doc strings. I've tried to include examples in the text editors templates to help give users some samples of working scripts, is there some area you think should be added to here that would help? The examples are very helpful, however most of the time my questions are more Why than How and inevitably about some corner case that isn't quite covered by one of the cookbook recipes. I don't know that this is necessarily a documentation issue as much as I simply haven't committed enough time to fully understanding how Blender's internals work. This certainly goes to David's point about the difficulty of diving in for casual users, unfortunately I don't know how to bypass the learning curve. Fortunately, the last time I spent much time on scripting Blender was ~3 months ago and I remember thinking at the time that the more conceptual API documentation had improved since the last time I looked at it. I had a quick look over google's standards and while we don't follow all, a lot of them are aligned with pep8 (and common sense), if you think there are some we could benefit from, I'd be interested to know which ones specifically. I like that Google's standard is explicit about how to document things like function arguments and return values, whereas PEP 257 doesn't really give any guidance other than do it. Numpy's docstring style guide is also quite good about this. I might quibble with some of Google's choices but the main things I like about it for my own projects are that: it is in one place, is pretty comprehensive, I can point someone else to it and expect a reasonable result, and I didn't have to write it. I know Blender has a style guide for C code and it would probably be good to have one for Python, even if it is just a paragraph saying Follow PEP 8 257. Integrating ipython is fairly straightforward I suspect a lot of users would greatly appreciate IPython's improved object introspection and user friendliness. Cheers, -- Jed Frechette ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
On Tue, Jun 25, 2013 at 10:49 PM, Benjamin Tolputt btolp...@internode.on.net wrote: ...though now we have to define integral. I would like to see more blender UI and experimental features built in a static-typed extension language like C#/Mono or TypeScript. I gotta say I neither want, agree, nor think this will ever happen. I understand, and you may be right. I'd like to respectfully share a few counter-points to your message... For the latest Mac OSX version (i.e. the one I'd be running if I wasn't building it myself) - that's 87MB. The latest stable Mono runtime is a 103MB download - all by itself and without any of Blender packaged into it. That 103MB Mono download size is not related to the embedded size as it includes all kinds of stuff that would not be included. One dev found that the embedded mono-runtime for his project was about 20MBhttp://shishkin.wordpress.com/2009/12/24/mono-as-a-lightweight-net-runtime/. Many of the libs he included are not needed for Blender, though the compiler would be needed because I want to compile directly from blender, I suspect 20-25MB is close. V8+TypeScript is much smaller then Mono or Python and is likely to remain so even as TypeScript matures, but with a loss of included module functionality. Secondly, and perhaps Campbell can speak to this, but I don't think type safety is the largest source of bugs in Blender. I'm specifically talking about segfaults, and I think we are having a semantic issue. Type-validity, bounds-checking, and lack of direct pointer manipulation are all part of Type-Safety. By my view, nearly any segfault that occurs in C, other than failing to check a pointer for null, is ultimately a type-safety issue in someone's code. Of course a Type-Safe program can crash (aka, throw an Exception that can't be handled). However, that backtrace is a pretty good indication of where part of the problem lies. Wheras a segfault in C could be caused by any number of data-stomps unrelated to the call stack. Thirdly, type-safety in languages like C# TypeScript comes with a performance cost. Yes, there is a performance cost for Mono/V8 relative to C, but for many types of code that gap is quite small, about 1-3x slowdownhttp://benchmarksgame.alioth.debian.org/u32/benchmark.php?test=alllang=csharplang2=gccdata=u32, shockingly Javascript-V8 is similar. Certainly smaller than CPython vs C's 30-50x slowdownhttp://benchmarksgame.alioth.debian.org/u32/benchmark.php?test=alllang=python3lang2=gccdata=u32 . I admit it's hard to predict what the slowdown would be for accessing DNA/RNA without trying it. A C#/Mono implementation is going to need a development environment setup just like the current C/C++/Python setup does. An Embedded C#/Mono environment would include a C# compiler in blender, just like Python's compiler is included in blender. Likewise for a V8/TypeScript environment. All the source could be included and users could edit/compile/run directly within blender, just like Python.. It would just be faster and static-typed. There is a reason that most the third-party libraries used are written in C/C++ and it's not just because it's the de facto coding language of the OSS world. Well.. there are lots of reasons more third party libraries are written in C/C++. Those languages have been around longer. Integrating GC models is a hard problem, so C/C++ offers the greatest flexibility for library code, since it can be imported into any runtime. And of course, when code is heavily leveraged, the work of expunging all pointer and bounds bugs is worth the effort for the performance gains. However, I don't think any of these arguments hold for new experimental blender features and UI. I personally would gladly give up 1-3x performance for new features to get no segfaults, simpler code, and the ability for any user to edit/compile/debug/patch that code within blender without setting-up a build system. With all that in mind, it took me less than a hour to setup my build environment both on Windows on OSX (I already had the developer tools installed). This evening I followed the steps to setup an OSX / XCode build, hoping to fix my list of retina bugs. A couple hours later I have a built-binary, but it crashes immediately on launch. I'm too unfamiliar with blender to have a clue what is causing it. ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
On Wed, Jun 26, 2013 at 7:42 PM, David Jeske dav...@gmail.com wrote: On Tue, Jun 25, 2013 at 10:49 PM, Benjamin Tolputt btolp...@internode.on.net wrote: ...though now we have to define integral. I would like to see more blender UI and experimental features built in a static-typed extension language like C#/Mono or TypeScript. I gotta say I neither want, agree, nor think this will ever happen. I understand, and you may be right. I'd like to respectfully share a few counter-points to your message... For the latest Mac OSX version (i.e. the one I'd be running if I wasn't building it myself) - that's 87MB. The latest stable Mono runtime is a 103MB download - all by itself and without any of Blender packaged into it. That 103MB Mono download size is not related to the embedded size as it includes all kinds of stuff that would not be included. One dev found that the embedded mono-runtime for his project was about 20MBhttp://shishkin.wordpress.com/2009/12/24/mono-as-a-lightweight-net-runtime/. Many of the libs he included are not needed for Blender, though the compiler would be needed because I want to compile directly from blender, I suspect 20-25MB is close. V8+TypeScript is much smaller then Mono or Python and is likely to remain so even as TypeScript matures, but with a loss of included module functionality. Checking on the runtime size of these embeddable languages, is typically not so large if you strip them down, so size alone isn't argument against. Secondly, and perhaps Campbell can speak to this, but I don't think type safety is the largest source of bugs in Blender. I'm specifically talking about segfaults, and I think we are having a semantic issue. Type-validity, bounds-checking, and lack of direct pointer manipulation are all part of Type-Safety. By my view, nearly any segfault that occurs in C, other than failing to check a pointer for null, is ultimately a type-safety issue in someone's code. Of course a Type-Safe program can crash (aka, throw an Exception that can't be handled). However, that backtrace is a pretty good indication of where part of the problem lies. Wheras a segfault in C could be caused by any number of data-stomps unrelated to the call stack. This seems like admitting defeat before identifying the problem, as if you say --- Blender crashes for me therefor you should use a new language We should _really_ try to figure out what bugs you are running into before leaping to conclusions. Having dealt a lot with blender bugs I have my own opinions on this, but these are also not backed up by facts/statistics (in that respect something like break-pad would help for sure)... But my own anecdotal experience is that areas of Blender can be made very stable if developers focus on workflows/areas of the code - running well, but there are areas that fall under developers radars and users just run into bugs --- grumble, and suffer crashes when these should be getting fixed. Its hard for us to know if your experience is caused by a few specific bugs, or overall poor quality of code. But we should try to find out before making assumptions. One area I'm disappointed in Blender is with threading, in both Duran and Mango we had to disable view-port redrawing during render because of threading crashes, we just ran into too many hard to track down bugs which ended up being related to Blender shooting its self in the foot with threaded data access. A few times I spent hours to track down the bugs and result was - Blender is just had multiple threads accessing the same data (helgrind is quite good at pointing these errors our, and while some of these are harmless, enough are real bugs too). We should just lock Blender while rendering baking (any other operation that depends on data not getting manipulated while it runs), the benefit of being able to spin the 3d view around while rendering is minimal compared to the problems it causes. The fact you can crash Blender by toggling edit-mode while baking vertex colors is ridiculous - try it! ...too many other ways to crash during bake to mention - but theres nothing stopping you swapping out mesh data or converting the mesh to a curve during bake. Thirdly, type-safety in languages like C# TypeScript comes with a performance cost. Yes, there is a performance cost for Mono/V8 relative to C, but for many types of code that gap is quite small, about 1-3x slowdownhttp://benchmarksgame.alioth.debian.org/u32/benchmark.php?test=alllang=csharplang2=gccdata=u32, shockingly Javascript-V8 is similar. Certainly smaller than CPython vs C's 30-50x slowdownhttp://benchmarksgame.alioth.debian.org/u32/benchmark.php?test=alllang=python3lang2=gccdata=u32 . I admit it's hard to predict what the slowdown would be for accessing DNA/RNA without trying it. This can be made to work of course. A C#/Mono implementation is going to need a development environment setup just like the current C/C++/Python setup
Re: [Bf-committers] Blender roadmap article on code blog
On Wed, Jun 26, 2013 at 4:56 AM, Campbell Barton ideasma...@gmail.comwrote: This seems like admitting defeat before identifying the problem, as if you say --- Blender crashes for me therefor you should use a new language I fear my wordy detail is confusing my message. What I'm trying to say is.. I wish more blender code for UI and new features could have zero delay, zero work, zero build-setup between a casual user-dev like me seeing a (small) problem in the UI or a new feature, and doing an edit/compile/run/patch cycle. This way, all of the limited time I have to touch blender code could be spent trying to actually fix code, instead of the current situation of spending 1-4 hours wrangling the current build just to spend 1-4 hours making patches to fix a couple bugs. Or not even starting because I know this is what I'm in for. The more eyeballs fixing bugs the better. This is where the slippery slope of my thought began, and it went like this... - I don't think we can make the C build instant to setup and included with blender... - so to get there would require more code to be written in an extension language that blender can compile/run itself (like Python). - Except I don't think more of blender should be pushed into Python... because it's slow. and because code with no types is hard to read and understand, and without compile-time type-checking, harder for non-authors to change without fear of breaking something. Casual coding in a foreign codebase without types and type-aware-completion is also much harder. - So it would be great to have an extension language that didn't have these problems. Something as fast as possible, that has static types, type-aware-completion, type-checking, and where the compiler and build context can be cheaply built right into blender. What language systems can do that? Hmm.. well. There is Mono/C#/Boo, and there is TypeScript/V8. And maybe Google Dalvik/Java, though probably not the JVM. Hmm.. might be an interesting idea to integrate one of these. The graph editor, outliner, property panels, movie clip editor, masking and tracking, video sequence editor -- tons of the UI could be written in one of these languages without affecting blender performance much, making all that code more accessible to more devs. The more eyeballs fixing bugs the better. I wonder what other people might think of this idea. I'm not expecting that to necessarily sell you, but I hope it is a clearer explanation of my thinking. Read through your other comments, reasonable points but I would want to be convinced the errors you hint at _can't_ be fixed first. Of COURSE they can be fixed! Any code can be fixed, in any language. This isn't about a magic language. It is about iteration speed for the setup/edit/compile/run cycle. The faster than cycle is, the more casual devs can be roped in to help improve blender -- for however much code is written in that extension environment. This evening I followed the steps to setup an OSX / XCode build, hoping to fix my list of retina bugs. A couple hours later I have a built-binary, but it crashes immediately on launch. I'm too unfamiliar with blender to have a clue what is causing it. Crashes immediately is more likely to be some kind of build error (or incompatible libs/environment) then a bug in the code. Ohh it was totally setup user-error on my part. I'm not saying the blender build is somehow broken. Obviously there are lots of devs working on blender, including all the new GSOC folks. I spent another thirty minutes retracing my steps. Turns out when it said to toggle to the install target, I did the wrong thing because I don't know XCode enough to have understood the very-nice screenshot in the doc the first time through. Now I need to figure out how to source debug, since the XCode run button doesn't seem to launch blender. which is all sort of my point. The time between when I thought darn it, I'm just going to try to fix this, and when I can actually begin to dig through the code in this case was 2-3 hours of my time, and 12 hours wall-clock. Plus, I'm a software engineer. I'm impatient and hate setting up builds, but I'm comfortable working in big foreign builds, and C/C++, with code-generators, and third-party libs. However, I suspect there are also a lot of amateur coders/scripters who would spend some time reading through UI/feature code in C# or TypeScript trying to Code-Monkey out a patch.. my theory is that reducing that setup overhead to just a few minutes and using an easy language -- for an interesting subset of non-core blender code -- would mean a lot more eyeballs helping fix bugs and improve blender. Of course the real book you can throw at me is that I spent more time on this email discussion than I did setting up the build. :) However, I don't think that invalidates the argument. Even if nobody is on board with me, I hope it's interesting food for thought. Now I need to go fix some
Re: [Bf-committers] Blender roadmap article on code blog
David Jeske wrote In short, I want to help more of the blender community turn into blender devs and debuggers. ...clip... Python isn't used for enough of blender, and the code which is there is very hard to read, understand, change because there are no types and there is no compile typechecking. As someone with a fair bit of experience using Python for various things but only the occasional need to write Blender scripts I agree about the existing Python code being hard to read. However, the difficulties I've had have never really been due to lack of types. Instead, wildly varying styles and often little if any inline documentation have been the biggest issues for me. Combine this with the fact that Python is a pretty thin wrapper around the underlying structures, which I don't fully understand, and I'm usually able to come up with something that works but I'm never quite sure if I've done it the right way. Personally, I would love to see all new Python code complying to Google's Python Style Guide. In fairness, the new code I've looked at usually is better, however, often I'm looking at IO addons and other tools that have been around for awhile gathering cruft. Oh yeah, the biggest problem: Blender's Python console isn't iPython. :-) -- View this message in context: http://blender.45788.x6.nabble.com/Blender-roadmap-article-on-code-blog-tp109587p110189.html Sent from the Bf-committers mailing list archive at Nabble.com. ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
On Thu, Jun 27, 2013 at 4:20 AM, David Jeske dav...@gmail.com wrote: On Wed, Jun 26, 2013 at 4:56 AM, Campbell Barton ideasma...@gmail.comwrote: This seems like admitting defeat before identifying the problem, as if you say --- Blender crashes for me therefor you should use a new language I fear my wordy detail is confusing my message. What I'm trying to say is.. I wish more blender code for UI and new features could have zero delay, zero work, zero build-setup between a casual user-dev like me seeing a (small) problem in the UI or a new feature, and doing an edit/compile/run/patch cycle. This way, all of the limited time I have to touch blender code could be spent trying to actually fix code, instead of the current situation of spending 1-4 hours wrangling the current build just to spend 1-4 hours making patches to fix a couple bugs. Or not even starting because I know this is what I'm in for. The more eyeballs fixing bugs the better. This is where the slippery slope of my thought began, and it went like this... - I don't think we can make the C build instant to setup and included with blender... - so to get there would require more code to be written in an extension language that blender can compile/run itself (like Python). - Except I don't think more of blender should be pushed into Python... because it's slow. and because code with no types is hard to read and understand, and without compile-time type-checking, harder for non-authors to change without fear of breaking something. Casual coding in a foreign codebase without types and type-aware-completion is also much harder. - So it would be great to have an extension language that didn't have these problems. Something as fast as possible, that has static types, type-aware-completion, type-checking, and where the compiler and build context can be cheaply built right into blender. What language systems can do that? Hmm.. well. There is Mono/C#/Boo, and there is TypeScript/V8. And maybe Google Dalvik/Java, though probably not the JVM. Hmm.. might be an interesting idea to integrate one of these. The graph editor, outliner, property panels, movie clip editor, masking and tracking, video sequence editor -- tons of the UI could be written in one of these languages without affecting blender performance much, making all that code more accessible to more devs. The more eyeballs fixing bugs the better. I wonder what other people might think of this idea. I'm not expecting that to necessarily sell you, but I hope it is a clearer explanation of my thinking. Read through your other comments, reasonable points but I would want to be convinced the errors you hint at _can't_ be fixed first. Of COURSE they can be fixed! Any code can be fixed, in any language. This isn't about a magic language. It is about iteration speed for the setup/edit/compile/run cycle. The faster than cycle is, the more casual devs can be roped in to help improve blender -- for however much code is written in that extension environment. This evening I followed the steps to setup an OSX / XCode build, hoping to fix my list of retina bugs. A couple hours later I have a built-binary, but it crashes immediately on launch. I'm too unfamiliar with blender to have a clue what is causing it. Crashes immediately is more likely to be some kind of build error (or incompatible libs/environment) then a bug in the code. Ohh it was totally setup user-error on my part. I'm not saying the blender build is somehow broken. Obviously there are lots of devs working on blender, including all the new GSOC folks. I spent another thirty minutes retracing my steps. Turns out when it said to toggle to the install target, I did the wrong thing because I don't know XCode enough to have understood the very-nice screenshot in the doc the first time through. Now I need to figure out how to source debug, since the XCode run button doesn't seem to launch blender. which is all sort of my point. The time between when I thought darn it, I'm just going to try to fix this, and when I can actually begin to dig through the code in this case was 2-3 hours of my time, and 12 hours wall-clock. Plus, I'm a software engineer. I'm impatient and hate setting up builds, but I'm comfortable working in big foreign builds, and C/C++, with code-generators, and third-party libs. However, I suspect there are also a lot of amateur coders/scripters who would spend some time reading through UI/feature code in C# or TypeScript trying to Code-Monkey out a patch.. my theory is that reducing that setup overhead to just a few minutes and using an easy language -- for an interesting subset of non-core blender code -- would mean a lot more eyeballs helping fix bugs and improve blender. Of course the real book you can throw at me is that I spent more time on this email discussion than I did setting up the build. :) However, I don't think
Re: [Bf-committers] Blender roadmap article on code blog
On Thu, Jun 27, 2013 at 10:58 AM, Jed jedfreche...@gmail.com wrote: David Jeske wrote In short, I want to help more of the blender community turn into blender devs and debuggers. ...clip... Python isn't used for enough of blender, and the code which is there is very hard to read, understand, change because there are no types and there is no compile typechecking. As someone with a fair bit of experience using Python for various things but only the occasional need to write Blender scripts I agree about the existing Python code being hard to read. Am happy to take criticism for python code, but curious which parts you found problematic to follow. However, the difficulties I've had have never really been due to lack of types. Instead, wildly varying styles and often little if any inline documentation have been the biggest issues for me. Combine this with the fact that Python is a pretty thin wrapper around the underlying structures, which I don't fully understand, and I'm usually able to come up with something that works but I'm never quite sure if I've done it the right way. I've tried to include examples in the text editors templates to help give users some samples of working scripts, is there some area you think should be added to here that would help? Personally, I would love to see all new Python code complying to Google's Python Style Guide. In fairness, the new code I've looked at usually is better, however, often I'm looking at IO addons and other tools that have been around for awhile gathering cruft. IMHO we are pretty good with style (bundled scripts follow pep8, although 80-column width optional), I had a quick look over google's standards and while we don't follow all, a lot of them are aligned with pep8 (and common sense), if you think there are some we could benefit from, I'd be interested to know which ones specifically. As for the IO scripts definitely gather cruft, **but i can explain!** :) first we rushed in a direct port from 2.4x - was gsoc project, and we we're happy to have something functional (otherwise uses had to go back to 2.4x), then with BMesh if further complicated things since we had to deal with tessface/ngon conversions. So at this point they are really not nice to read - we just fix bugs and keep them working. Oh yeah, the biggest problem: Blender's Python console isn't iPython. :-) Integrating ipython is fairly straightforward, can be optional console mode from the menu (if ipython is found). IIRC at the time the py-console was added ipython didn't have python3 support so we did our own. -- View this message in context: http://blender.45788.x6.nabble.com/Blender-roadmap-article-on-code-blog-tp109587p110189.html Sent from the Bf-committers mailing list archive at Nabble.com. ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers -- - Campbell ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
On Tue, Jun 25, 2013 at 7:17 AM, David Jeske dav...@gmail.com wrote: I like the overall structure of this roadmap. It prompted me to cleanup and post my own 2013 Roadmap Wishlisthttp://wiki.blender.org/index.php/June_2013_Roadmap_Wishlist_Jeske, in-case it helps anyone's thinking/brainstorming. If Blender does only four things in the next few years, I would personally like them to be: 1) Include opt-in usage and automatic crash reporting in *every* blender build, and a web dashboard to live usage/crash stats to devs and the community. ( It looks like Google breakpad integration is in-progresshttp://wiki.blender.org/index.php/User:AlexK/Breakpad. ) While this _sounds_ good, I'm not so sure about it, Typically its most useful if we get a blend file and steps to redo. The backtrack on its own gives a hint at whats wrong but isn't enough to fix the bug. There is the case where users get crashes and dont report them- so it would serve a purpose, but I suspect this would end up being used as more of a statistic then something we actually use to fix bugs --- so we could know for eg, that 30% or crashes are caused by running out of ram. 20% caused by bugs in OpenGL drivers... etc Since we are already deluged in bug reports from the tracker, we might not be able to usefully handle more reports. 2) Increase community leverage, sharing, library asset encapsulation -- more bridges between pro-artists and amateur blender pilots. Material-sharing is being figured out. I'd like to be able to enapsulate a more complex parameterized block into something with external easy to use push-buttons... For example, (a) let me group/encapsulate/re-use/share a 10 node more advanced color-keying setup with an external mask-input, key-color-input, and exposed internal RGB curve editor used for foreground feather color correction; (b) let me wrap up the (scene, model, logic, animation, script, and render setup) for a 3d rendered and composited video-title-effect which can be used directly from the video-sequence-editor with simple animatable fields like color, title text, font, position. +1 3) Refine and add more end-to-end capabilities. IMO compositing and VFX have a multiplicative not additive effect on Blender's utility. Somehow having merely reasonable integrated 3d+compositing+vfx is better for some tasks than having non-integrated best-of-breed tools for each. Small refinements could be a video-sequence-editor refresh and non-photo-realistic-shading to complement freestyle. Bigger leaps might be comic/graphic-novel layout and authoring, 3d-sound-rendering/sequencing, or live-broadcast/streaming using BGE/interactive-mode. Useful but this isn't my field, to me its one of many areas that could be improved for sure. 4) Incorporate an extension language which can support Intellisense, type-checking, and fast execution. A big goal is to make scripting easier with Intellisense. Another goal is to enable both new blender additions and old code to be in a solid, typechecked, memory-managed high-level-language. Until recently, I wished for .NET/Mono/C# integration, like some people wished for in Maya before they decided on Python. However, I think there is a new exciting option which is lighter weight and may fit better, and that is TypeScript + Javascript-V8. (Typescript http://www.typescriptlang.org/is a class-based Javascript facade with optional-static typing, and Javascript-V8 is 10-30x fasterhttp://benchmarksgame.alioth.debian.org/u64/benchmark.php?test=alllang=python3lang2=v8data=u64than CPython 3). Obviously this would be done in a way which leverages the investment in Python exports/apis. This is really big project and not something a dev is likely to do for-fun unless there is a high likely hood its going to be accepted in trunk. We could make the C++ RNA api more generally useful (what cycles is currently using), We could need to streamline the process of making a CPython module that uses C++ RNA so its not a big deal for developers to create new components in C++, currently its possible just not documented and only cycles makes use of it. Since we are already including LLVM it could be interesting to check on the status of some LLVM based languages though from what I can tell none have the same level of traction/maturity as .NET languages (unless you count clang) - compared to C#, F#, IronPython etc. There is nothing stopping us from bundling CPython/LLVM, CPython/OpenCL but these are not quite the same as allowing a new language in blender. more ways CPython can send some computations to an foreign system and get back results (yes, opencl is a language, but when its called from python its limited a bit in what it can do within blender). There are some interesting projects... - https://github.com/dabeaz/bitey - http://www.llvmpy.org - http://documen.tician.de/pyopencl (not sure if this supports py3) So this is big topic, not something that happens unless there is
Re: [Bf-committers] Blender roadmap article on code blog
On Tue, Jun 25, 2013 at 7:19 AM, Campbell Barton ideasma...@gmail.comwrote: 1) Include opt-in usage and automatic crash reporting in *every* blender build, and a web dashboard to live usage/crash stats to devs and the community. There is the case where users get crashes and dont report them- so it would serve a purpose, but I suspect this would end up being used as more of a statistic then something we actually use to fix bugs My intent is not to create more work for devs, but less work. Ubiquitious crash reporting is not for devs to crawl through individual reports, but to create a strategic source of *real* stats about when there are too many crashes and when things are stable. It's simply applying the simple mantra of to improve it, measure it. For example, my 2.67b crashed 5+ times in 14 hours doing a trivial VFX toy project. Other than me emailing people, nobody even sees these crash stats. If I email people, I waste their time with non-reproducable crash anecdotes. I think an automatic crash report onto a graph would be better than being blind to the data, or being distracted by the anicdotes. Also, this kind of tool is incredibly useful when a dev is working on fixing a bug, because user comments can be searched to see if there is a pattern. It might also be possible to track the last several operators, or the time spent in different areas, also to see if there is a pattern. 4) Incorporate an extension language which can support Intellisense, type-checking, and fast execution. This is really big project and not something a dev is likely to do for-fun unless there is a high likely hood its going to be accepted in trunk. Agreed. This is why I'm starting with socializing. Also keep in mind that these new options are really only now becoming possible. Back when Blender integrated Python, Mono/C# was not great, and V8 didn't exist. Today Mono is embedded in many notable things, including Unity. I think TypeScript looks pretty incredible, but it's also very bleeding edge. (They just released generics/type-parametrics in 0.9 a couple weeks ago). We could make the C++ RNA api more generally useful (what cycles is currently using), I think I should back up and better explain my motivation. In short, I want to help more of the blender community turn into blender devs and debuggers. Setting up a blender build is too big a hurdle. Python isn't used for enough of blender, and the code which is there is very hard to read, understand, change because there are no types and there is no compile typechecking. (though I admit types are not as powerful as tests) As a result, I'd like to see more blender code written in a language/environment which is easier to code-in (type-aware-completion), easier to understand (static typing), unlikely to crash blender (type-safety), unlikely to do bad things (sandboxing), performs well (fast execution), and can be debugged/patched without setting up a C blender build. These are similar to the motivations which created Open Shading Language, but that solution is very domain specific. C++ isn't typesafe and requires setting up the whole blender build to touch. This is fine for core-development like Cycles or parts of the blender Core, but not great for rapid development, addons and community debugging. Python type-safety is nice, and users can touch it without a blender build setup. However, not much of blender is written in it! I don't think this is mostly because of limitations in the Python API, but because code without types is fragile and hard to read, and CPython is very very slow (though PyPy could help). Really this isn't about providing a language which is more attractive than Blender Python, but one which is more attractive than Blender-C ! C#/.NET is pretty fantastic in this respect, because it's pretty darn comfortable for C programmers, moreso even than Java, yet has all the features above. However, it has some drawbacks, including a fairly large runtime and unclear sandboxing situation. Google's Javascript V8 engine is small, decently close to Mono performance, has excellent sandboxing, and with TypeScript can support static typing and type-aware-completion. I suspect the C-to-V8 data-structure marshaling is probably slower than C-to-Mono, but it's hard to say for sure. Since we are already including LLVM it could be interesting to check on the status of some LLVM based languages.. Please explain your thinking here. Mono/C# has an LLVM backend. How does a language targetting LLVM help? By my view it's the marshalling/API layer which creates the work of the linkage, mapping from dangerous C pointers and datastructures to typesafe APIs and structures. ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
Crash reporting might be useful but integrating this in a manner that makes sense might be very intensive work. You're not really trying to lure us into coding integral parts of blender in python, c# or mono, are you? A new/additional scripting language might be cool and is definitely something we should think about. There is a reason why coders always fall back to c/c++, that reason is speed. Imho Type safety in c++ is not as critical as you present it here. Ok you could replace some parts of blender with scripted code, but I don't agree with your arguments at all. /Jürgen Am 25.06.2013 um 21:14 schrieb David Jeske dav...@gmail.com: On Tue, Jun 25, 2013 at 7:19 AM, Campbell Barton ideasma...@gmail.comwrote: 1) Include opt-in usage and automatic crash reporting in *every* blender build, and a web dashboard to live usage/crash stats to devs and the community. There is the case where users get crashes and dont report them- so it would serve a purpose, but I suspect this would end up being used as more of a statistic then something we actually use to fix bugs My intent is not to create more work for devs, but less work. Ubiquitious crash reporting is not for devs to crawl through individual reports, but to create a strategic source of *real* stats about when there are too many crashes and when things are stable. It's simply applying the simple mantra of to improve it, measure it. For example, my 2.67b crashed 5+ times in 14 hours doing a trivial VFX toy project. Other than me emailing people, nobody even sees these crash stats. If I email people, I waste their time with non-reproducable crash anecdotes. I think an automatic crash report onto a graph would be better than being blind to the data, or being distracted by the anicdotes. Also, this kind of tool is incredibly useful when a dev is working on fixing a bug, because user comments can be searched to see if there is a pattern. It might also be possible to track the last several operators, or the time spent in different areas, also to see if there is a pattern. 4) Incorporate an extension language which can support Intellisense, type-checking, and fast execution. This is really big project and not something a dev is likely to do for-fun unless there is a high likely hood its going to be accepted in trunk. Agreed. This is why I'm starting with socializing. Also keep in mind that these new options are really only now becoming possible. Back when Blender integrated Python, Mono/C# was not great, and V8 didn't exist. Today Mono is embedded in many notable things, including Unity. I think TypeScript looks pretty incredible, but it's also very bleeding edge. (They just released generics/type-parametrics in 0.9 a couple weeks ago). We could make the C++ RNA api more generally useful (what cycles is currently using), I think I should back up and better explain my motivation. In short, I want to help more of the blender community turn into blender devs and debuggers. Setting up a blender build is too big a hurdle. Python isn't used for enough of blender, and the code which is there is very hard to read, understand, change because there are no types and there is no compile typechecking. (though I admit types are not as powerful as tests) As a result, I'd like to see more blender code written in a language/environment which is easier to code-in (type-aware-completion), easier to understand (static typing), unlikely to crash blender (type-safety), unlikely to do bad things (sandboxing), performs well (fast execution), and can be debugged/patched without setting up a C blender build. These are similar to the motivations which created Open Shading Language, but that solution is very domain specific. C++ isn't typesafe and requires setting up the whole blender build to touch. This is fine for core-development like Cycles or parts of the blender Core, but not great for rapid development, addons and community debugging. Python type-safety is nice, and users can touch it without a blender build setup. However, not much of blender is written in it! I don't think this is mostly because of limitations in the Python API, but because code without types is fragile and hard to read, and CPython is very very slow (though PyPy could help). Really this isn't about providing a language which is more attractive than Blender Python, but one which is more attractive than Blender-C ! C#/.NET is pretty fantastic in this respect, because it's pretty darn comfortable for C programmers, moreso even than Java, yet has all the features above. However, it has some drawbacks, including a fairly large runtime and unclear sandboxing situation. Google's Javascript V8 engine is small, decently close to Mono performance, has excellent sandboxing, and with TypeScript can support static typing and type-aware-completion. I suspect the C-to-V8 data-structure marshaling is probably
Re: [Bf-committers] Blender roadmap article on code blog
On Tue, Jun 25, 2013 at 12:40 PM, Jürgen Herrmann shadow...@me.com wrote: You're not really trying to lure us into coding integral parts of blender in python, c# or mono, are you? No.. Blender core code is large and depends on many useful third party C/C++ libraries. I'd guess it's going to be C for a very long time (possibly it's entire useful life). ...though now we have to define integral. I would like to see more blender UI and experimental features built in a static-typed extension language like C#/Mono or TypeScript. There is a reason why coders always fall back to c/c++, that reason is speed. Imho Type safety in c++ is not as critical as you present it here. Let me explain my motivations differently... Blender is an incredible piece of software, and I'm thrilled it exists, thrilled to use it, and thrilled to support it. I'm working on a VFX clip right now, and I'm just *astonished* at what I'm able to accomplish -- as a software engineer with little art-skill. who has never done any filming, compositing, or even node-editing before. It's truly awesome So it's sad that, for me, Blender crashes WAY too much and more than any other program I have ever used. I'm just an amateur who hardly does anything fancy. This is why my #1 is automatic crash reporting and a crash-stats dashboard. The only other blender users I have direct contact with also say it crashes alot. I see it crash in youtube tutorials. I personally would like to know how much it crashes. I think measurement is often a good step to improvement. However, lets get back to type-safety... My (unproven) theory is the crashes and instability is primarily for two reasons (a) devs are volunteers and there is more interest in incorporating cutting edge features than spending time making sure every piece of C/C++ code is well behaved. (b) blender is primarily used on windows, and a windows build takes quite a while to setup and get working, so it's easier for software-engineer blender users to just work-around bugs and crashes than help fix blender. (a) can be improved with type-safety, but only for code that is written in the type-safe environment. (b) I'm guilty of myself. I have spent time filing bugs for small problems that might have taken me less time to actually fix and submit a patch -- if I had a working build. However, I've tried to setup a working windows build before and given up for frustration and lack-of-time. I despise setting up builds. Build setups are notorously under-documented, and my machines are used for development, so I often can't just install the tools the build wants in all the standard places because it collides with other versions of the same tools. All of this means I just work around the issue and file a bug instead. ...so, I agree type-safety is not a panacea. In fact, if I get to choose between type-safety and enabling any blender user-dev to quickly and trivially edit/compile/run/patch/share blender code, I'd take the latter. The only path to instant embedded edit/compile/run/debug cycles I've ever seen is extension languages, which also happen to mostly be typesafe, so this is why I see the two as intertwined. A magic push button way to automatically setup a windows build would be a great alternative if it can be done. A new/additional scripting language might be cool and is definitely something we should think about. Ok you could replace some parts of blender with scripted code, but I don't agree with your arguments at all. Let's keep in mind the term script language is very imprecise, and is being blurred by technology like JIT and virtual machines. To clarify, I don't want to see more of blender written in Python, nor do I want to see another dynamic typed scripting language added to Blender. Consistency is good and Python is a good scripting language. What I would like to see is: (a) Blender crash less, (b) an easier workflow for a software-engineer blender-user making a small fix. My hypothesis is that a static-typed extension language like C#/Java/TypeScript would be a more viable way to develop real features, not just scripts. This would allow more of blender UI and new experimental features to be built in an extension language that won't crash blender. A language that the user-dev community could more readily fix and improve, because they wouldn't need to setup and maintain a whole blender-core build to contribute. Any of that seem more attractive? ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
On 26/06/2013, at 3:07 PM, David Jeske wrote: ...though now we have to define integral. I would like to see more blender UI and experimental features built in a static-typed extension language like C#/Mono or TypeScript. I gotta say I neither want, agree, nor think this will ever happen. I say this as someone that is actually disappointed Python was chosen over another language for Blender's scripting language of choice. I'm not trying to trash your ideas, because I understand somewhat where you're coming from in regards to wanting to improve Blender stability, but it does need to be tempered with a some facts. Let's start with the runtime size. Everything you need ti run Blender comes packaged in the download. For the latest Mac OSX version (i.e. the one I'd be running if I wasn't building it myself) - that's 87MB. The latest stable Mono runtime is a 103MB download - all by itself and without any of Blender packaged into it. Secondly, and perhaps Campbell can speak to this, but I don't think type safety is the largest source of bugs in Blender. At the level of code I've played in, the types of variables are clear and not violated through casting back forth through void pointers (or similar nonsense). Sure, there'll be code in the application that does that kind of thing but, from what patches/bug-fixes I've looked at the solutions of, those practices are not the source. Again, I think Campbell could speak to this with far more authority (perhaps even pointing out I'm wrong), but that's the situation as I see it. Thirdly, type-safety in languages like C# TypeScript comes with a performance cost. There is a reason that most the third-party libraries used are written in C/C++ and it's not just because it's the de facto coding language of the OSS world. C/C++ is almost about one step up from the metal (when used the way most engineers write code). Type-safe languages, such as those you suggest, need to inject a runtime platform between the metal and the coded application - that middle layer provides your safety... using more CPU memory than would be needed for the C/C++ equivalent. It's a trade-off and, frankly, Blender needs all the speed and memory it can get a hold of ;) I could go on on about this. I've had to make this decision (safer language or faster code) many times. You can get fast bug-free code in C/C++. I'll concede you might get the bug-free code in C# (or similar) quicker... but the resulting executable will be larger, take more memory, and run slower. With all that in mind, it took me less than a hour to setup my build environment both on Windows on OSX (I already had the developer tools installed). If you want to do it, it's not that hard. If you don't want to do it, the ability to code in an alternate language isn't going to change that much. A C#/Mono implementation is going to need a development environment setup just like the current C/C++/Python setup does. -- Benjamin Tolputt ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
I like the overall structure of this roadmap. It prompted me to cleanup and post my own 2013 Roadmap Wishlisthttp://wiki.blender.org/index.php/June_2013_Roadmap_Wishlist_Jeske, in-case it helps anyone's thinking/brainstorming. If Blender does only four things in the next few years, I would personally like them to be: 1) Include opt-in usage and automatic crash reporting in *every* blender build, and a web dashboard to live usage/crash stats to devs and the community. ( It looks like Google breakpad integration is in-progresshttp://wiki.blender.org/index.php/User:AlexK/Breakpad. ) 2) Increase community leverage, sharing, library asset encapsulation -- more bridges between pro-artists and amateur blender pilots. Material-sharing is being figured out. I'd like to be able to enapsulate a more complex parameterized block into something with external easy to use push-buttons... For example, (a) let me group/encapsulate/re-use/share a 10 node more advanced color-keying setup with an external mask-input, key-color-input, and exposed internal RGB curve editor used for foreground feather color correction; (b) let me wrap up the (scene, model, logic, animation, script, and render setup) for a 3d rendered and composited video-title-effect which can be used directly from the video-sequence-editor with simple animatable fields like color, title text, font, position. 3) Refine and add more end-to-end capabilities. IMO compositing and VFX have a multiplicative not additive effect on Blender's utility. Somehow having merely reasonable integrated 3d+compositing+vfx is better for some tasks than having non-integrated best-of-breed tools for each. Small refinements could be a video-sequence-editor refresh and non-photo-realistic-shading to complement freestyle. Bigger leaps might be comic/graphic-novel layout and authoring, 3d-sound-rendering/sequencing, or live-broadcast/streaming using BGE/interactive-mode. 4) Incorporate an extension language which can support Intellisense, type-checking, and fast execution. A big goal is to make scripting easier with Intellisense. Another goal is to enable both new blender additions and old code to be in a solid, typechecked, memory-managed high-level-language. Until recently, I wished for .NET/Mono/C# integration, like some people wished for in Maya before they decided on Python. However, I think there is a new exciting option which is lighter weight and may fit better, and that is TypeScript + Javascript-V8. (Typescript http://www.typescriptlang.org/is a class-based Javascript facade with optional-static typing, and Javascript-V8 is 10-30x fasterhttp://benchmarksgame.alioth.debian.org/u64/benchmark.php?test=alllang=python3lang2=v8data=u64than CPython 3). Obviously this would be done in a way which leverages the investment in Python exports/apis. ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
I would like to know more about what Ton means by the line What should then be dropped is the idea to make Blender have an embedded “true” game engine from the blog post. What exactly is proposed to be dropped here? It looks to me all that is proposed to be dropped is an idea, changing the focus of the game engine to make it better at what it can do rather than making it a clone of other game engine/game editors. Are we actually talking about removing features and/or the ability to publish a game? The blog post mentions creating 3D interaction for walkthroughs, for scientific sims, or game prototypes. This can still make use of existing code/features as well as the ability to publish and distribute these creations. As a BGE developer I have often considered a closer integration of the BGE and the rest of Blender for their mutual benefit. At its simplest, closer integration means better viewport visualization, and more maintained code for the BGE. Stronger integration yields even more interesting ideas as Ton outlines in the blog post. As I said in my original response, this sounds like a great idea as long as those three conditions (mostly we aren't losing a lot of functionality for current BGE users) are met. As to the idea of me changing GSoC projects, I am not entirely against it, but I would like to better understand both Ton's proposal and the potential new project before jumping ship to a vague/undefined project. Regards, Daniel Stokes On Sun, Jun 16, 2013 at 10:46 PM, Benjamin Tolputt btolp...@internode.on.net wrote: On 17/06/2013, at 3:23 PM, Campbell Barton wrote: Then it may be a good argument for Daniel to make a start on interactive-animation tools, If he is amenable to the switch, then that would make a decent compromise to offer surely? While this is a valid point, (as far as I know) none of these devs have stepped up to really supporting the BGE and helping become a maintainer. They mostly submit one feature they need for their game, then become inactive with BGE dev. I wasn't pointing it out as a reason against Ton's move, I was using it to support the *earlier* point that there is a lack developer effort/focus toward the BGE. The patches/submissions to Blender aren't being accepted, a good-sized proportion of BGE advocates are recommending that one use a build that applies most of them, and yet they admit is almost a fork due to the variance between official BGE and HG1 build BGE. Perhaps it will be a benefit to both BGE and Blender if they become separate projects? Blender can focus on asset creation (with the data structures and code compromises that make that efficient) whilst the BGE can start optimising the code/structures it uses to make it better for running a game. ... you could argue this is catch22 - if we accepted their patches they would become more active and submit more fixes but I still think if someone really wanted to become active and take the BGE forward they could - despite some slow patch review. Whilst you could argue the catch-22 aspect, I'd have to disagree that slow patch review isn't a big issue in it's own right. Watching a patch wither on the vine is a very demotivating experience, especially if it fixes something and the bug is left in the main project despite you having put the effort into solving it so the core development team didn't have to. That's something being bandied about the Blender-verse lately as well. Sure, if you want to be active enough, you'll walk over shards of broken glass to keep submitting your patches but that doesn't mean we should expect them to. Again, not an argument against the BGE removal/simplification as I support/defend Ton's decision in this regard. Just pointing out that the argument (like the it's not as good as the competition one) is pretty poor on it's own. -- Benjamin Tolputt ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
Please don’t be stupid! Comparing XP and Linux on a market share basis is just pure nonsense. There’s at least two huge differences between those OS's: *One is 12 years old, the other one is plain modern (don’t think anyone would care to maintain Blender for over 10 years old linux, nor even for OSX!). *Even though a few XP are listed in http://wiki.blender.org/index.php/Dev:Ref/Supported_platforms (and I’m not sure this list is really up-to-date), you’ll find far more Blender devs under linux. And despite the fact that XP is still about 40% of PCs connecting to the web, you’ll have a hard time finding any commercial 3D software supporting it (most don’t even support Vista anymore). While a fare amount of them do support Linux. It would interesting to know the amount of XP PCs that download Blender, btw. My guess is that it would be far less than 40%. So in a word, if we drop OpenGL below 2.1 (or even 3.0), it makes sense to me to also drop XP. You can’t waist time (and even often limit your app possibilities) to support obsolete stuff forever! On 17/06/2013 06:52, Alexandr Kuznetsov wrote: Drop linux. It has 1% market share, less than xp. No more x11 hacks. And Mac OS X Tiger. Oops, too late. Somebody already did it. On 6/17/2013 12:46 AM, Harley Acheson wrote: Jürgen, If we are considering dropping Windows XP we should probably also consider dropping the other operating systems that have even less usage. Which is everything else besides Windows 7. So every version of Mac and all flavors of Linux combined. LOL Harley ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
Hi Bastien, Good to hear that I am not totally alone with my point of view ;-) Ton sent in some interesting statistics of the blender.org website visitors: http://lists.blender.org/pipermail/bf-committers/2013-May/040268.html http://lists.blender.org/pipermail/bf-committers/2013-May/040269.html http://lists.blender.org/pipermail/bf-committers/2013-May/040274.html And I started a poll in blenderartists : http://www.blenderartists.org/forum/showthread.php?291199-32-or-64bit The results speak for themselves ... /Jürgen Am 17.06.2013 um 09:43 schrieb Bastien Montagne montagn...@wanadoo.fr: Please don’t be stupid! Comparing XP and Linux on a market share basis is just pure nonsense. There’s at least two huge differences between those OS's: *One is 12 years old, the other one is plain modern (don’t think anyone would care to maintain Blender for over 10 years old linux, nor even for OSX!). *Even though a few XP are listed in http://wiki.blender.org/index.php/Dev:Ref/Supported_platforms (and I’m not sure this list is really up-to-date), you’ll find far more Blender devs under linux. And despite the fact that XP is still about 40% of PCs connecting to the web, you’ll have a hard time finding any commercial 3D software supporting it (most don’t even support Vista anymore). While a fare amount of them do support Linux. It would interesting to know the amount of XP PCs that download Blender, btw. My guess is that it would be far less than 40%. So in a word, if we drop OpenGL below 2.1 (or even 3.0), it makes sense to me to also drop XP. You can’t waist time (and even often limit your app possibilities) to support obsolete stuff forever! On 17/06/2013 06:52, Alexandr Kuznetsov wrote: Drop linux. It has 1% market share, less than xp. No more x11 hacks. And Mac OS X Tiger. Oops, too late. Somebody already did it. On 6/17/2013 12:46 AM, Harley Acheson wrote: Jürgen, If we are considering dropping Windows XP we should probably also consider dropping the other operating systems that have even less usage. Which is everything else besides Windows 7. So every version of Mac and all flavors of Linux combined. LOL Harley ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
In response to B. Tolputt's email, I think there are one or two things that need to be addressed. Firstly, the animation tools are perfectly functional in both Blender and BGE, unless you could clarify. The multiplayer aspect is true, and something that I am working on, and considering that unity itself requires scripting to use the multiplayer system, one may argue that we too have multiplayer by that standard. I don't want to make too many assertions from the articles contents, but the concern for myself is the time and energy I've spent working with and inside blender source in order to realise my goals. For other users the prospects of a stalled engine are not appealing, and whilst one could use legacy releases of blender, it would be undesirable. I agree that there are certain aspects that could use some attention, and to this effect there are users including myself who intend to contribute their development. I think what the bge would benefit from is an updated design document Just my thoughts. ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
I think that Ton should be conscious that people don' t really know how to use BGE. Serious ressources about BGE like mike pan's files are 2.5 .blends. You have to find a complex project to understand the meaning of states in logic editor. Yo!Frankie is outdated. There are few games that can demonstrate that. But if no major informative sites like wiki or BA points to them; you have to hope that a kind expert of BGE answer your question. Often on forums, we see a guy that want to update Yo!Frankie to 2.6. It takes much more time and effort to produce .blends with game interaction rather than a modeling or a Cycles tutorial. Since 2.5 development, there are rumors telling that devs will drop completely BGE. So, new incomers who are triyng it are really warriors. Let them time to produce content. I know a guy who was making games with 2.49 and directly passed to unity without testing BGE navigation mesh. A month ago, during an afternoon, we tried it and character type; we had a lot of funs, some difficulties with animation of linked characters. He found charater jump great. He was amazed when I talked to him about BGUI. He never heard about that. It is not because features are discussed and developped during months on dev-mailing list or irc that users will automatic be conscious at official release that it exists. They finish their 6_8 months project with the same release that was used to begin it. Then, they read release logs of the last version and ignore release logs in between. The discussion around BGE could turn like stupid interface threads where people who use unity or other engines are numerically proeminent and will ask to re-invent what is already there. I have also a lot of doubts about the 3 series period. I made a book on 2.63 (Bmesh). Somebody asked me to make a demonstration about blender for 3D printing before 2.67 release. So, I showed 2.67 printing tools with a build of the day instead of offficial 2.66, explaining that tools would be quickly available. And a guy asked to me why I based my book on 2.63 instead of 2.62. It was the version in packages of his linux distribution. Do you really think that people will understand the purpose of these series ? They will download what seems to be the last version 2.8 and then complain :blender sucks because there is no documentation and no ressources about this release. And when people will go on forums to find a specific feature; the answer will be : _Try the last 2.7 unstable release. All basic functions are bugguy but this specific feature is far better than in 2.6 and does not exist yet in experimental 2.8. _Finally, I prefer to wait 3.0 to test blender. I think that you can give a special cool name to the serie like BlenderGTX 1 to BlenderGTX 20 without the error of communication to name it 2.8X. On 17/06/2013 08:00, Daniel Stokes wrote: I would like to know more about what Ton means by the line What should then be dropped is the idea to make Blender have an embedded “true” game engine from the blog post. What exactly is proposed to be dropped here? It looks to me all that is proposed to be dropped is an idea, changing the focus of the game engine to make it better at what it can do rather than making it a clone of other game engine/game editors. Are we actually talking about removing features and/or the ability to publish a game? The blog post mentions creating 3D interaction for walkthroughs, for scientific sims, or game prototypes. This can still make use of existing code/features as well as the ability to publish and distribute these creations. As a BGE developer I have often considered a closer integration of the BGE and the rest of Blender for their mutual benefit. At its simplest, closer integration means better viewport visualization, and more maintained code for the BGE. Stronger integration yields even more interesting ideas as Ton outlines in the blog post. As I said in my original response, this sounds like a great idea as long as those three conditions (mostly we aren't losing a lot of functionality for current BGE users) are met. As to the idea of me changing GSoC projects, I am not entirely against it, but I would like to better understand both Ton's proposal and the potential new project before jumping ship to a vague/undefined project. Regards, Daniel Stokes ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
On 17/06/2013, at 8:22 PM, Angus Hollands wrote: In response to B. Tolputt's email, I think there are one or two things that need to be addressed. Firstly, the animation tools are perfectly functional in both Blender and BGE, unless you could clarify. Blender does not have Animation Blend Trees nor does it have Animation State Machines. Like many things, you can hack a basic one together using Python with some effort, but the Blender Game Engine does not have them out of the box. I was quite specific about what was missing (and present in Unity) and I checked again before posting. The multiplayer aspect is true, and something that I am working on, and considering that unity itself requires scripting to use the multiplayer system, one may argue that we too have multiplayer by that standard. Sorry, but there is a *big* difference between being able to send messages over the network (Python) and being able to just toggle on game object state synchronisation (Unity). There is more to claiming multiplayer support than having a TCP/IP pipe available. Just as there is more to having built-in Animation State Machine support than just a Turing complete scripting language. I'm not trying to belittle the BGE, but I'm not speaking out of ignorance either. -- Benjamin Tolputt ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
Hi, We only have to respect two aspects for supported platforms: - be able to move forward with Blender in ways we like to - have developers available to keep platforms supported Market shares don't have to play a role. I also don't know of any project here that would practically require to drop 32 bits. If someone has that issue, we can openly review that. Same goes for XP support. I have no evidence it wouldn't allow to run opengl 2.1 features. -Ton- Ton Roosendaal - t...@blender.org - www.blender.org Chairman Blender Foundation - Producer Blender Institute Entrepotdok 57A - 1018AD Amsterdam - The Netherlands On 17 Jun, 2013, at 10:07, Jürgen Herrmann wrote: Hi Bastien, Good to hear that I am not totally alone with my point of view ;-) Ton sent in some interesting statistics of the blender.org website visitors: http://lists.blender.org/pipermail/bf-committers/2013-May/040268.html http://lists.blender.org/pipermail/bf-committers/2013-May/040269.html http://lists.blender.org/pipermail/bf-committers/2013-May/040274.html And I started a poll in blenderartists : http://www.blenderartists.org/forum/showthread.php?291199-32-or-64bit The results speak for themselves ... /Jürgen Am 17.06.2013 um 09:43 schrieb Bastien Montagne montagn...@wanadoo.fr: Please don’t be stupid! Comparing XP and Linux on a market share basis is just pure nonsense. There’s at least two huge differences between those OS's: *One is 12 years old, the other one is plain modern (don’t think anyone would care to maintain Blender for over 10 years old linux, nor even for OSX!). *Even though a few XP are listed in http://wiki.blender.org/index.php/Dev:Ref/Supported_platforms (and I’m not sure this list is really up-to-date), you’ll find far more Blender devs under linux. And despite the fact that XP is still about 40% of PCs connecting to the web, you’ll have a hard time finding any commercial 3D software supporting it (most don’t even support Vista anymore). While a fare amount of them do support Linux. It would interesting to know the amount of XP PCs that download Blender, btw. My guess is that it would be far less than 40%. So in a word, if we drop OpenGL below 2.1 (or even 3.0), it makes sense to me to also drop XP. You can’t waist time (and even often limit your app possibilities) to support obsolete stuff forever! On 17/06/2013 06:52, Alexandr Kuznetsov wrote: Drop linux. It has 1% market share, less than xp. No more x11 hacks. And Mac OS X Tiger. Oops, too late. Somebody already did it. On 6/17/2013 12:46 AM, Harley Acheson wrote: Jürgen, If we are considering dropping Windows XP we should probably also consider dropping the other operating systems that have even less usage. Which is everything else besides Windows 7. So every version of Mac and all flavors of Linux combined. LOL Harley ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
Hi Daniel, I wrote the blog post as a discussion piece, something we can spend on for months, or a year, or as much time we need. We have a quite long way to go before a new GE can be defined to be feasible anyway. I would also like to see a wide consensus about future plans for Blender. For that reason you shouldn't see it as 'bad timing', or a suggestion to refocus your work. The GE itself, and its current users, will really benefit your work now. Your gsoc project is also meant to solve a lot of current issues (bugs) anyway. I hope you can continue that work happily. (Long answer to your questions in a next mail) -Ton- Ton Roosendaal - t...@blender.org - www.blender.org Chairman Blender Foundation - Producer Blender Institute Entrepotdok 57A - 1018AD Amsterdam - The Netherlands On 17 Jun, 2013, at 8:00, Daniel Stokes wrote: I would like to know more about what Ton means by the line What should then be dropped is the idea to make Blender have an embedded “true” game engine from the blog post. What exactly is proposed to be dropped here? It looks to me all that is proposed to be dropped is an idea, changing the focus of the game engine to make it better at what it can do rather than making it a clone of other game engine/game editors. Are we actually talking about removing features and/or the ability to publish a game? The blog post mentions creating 3D interaction for walkthroughs, for scientific sims, or game prototypes. This can still make use of existing code/features as well as the ability to publish and distribute these creations. As a BGE developer I have often considered a closer integration of the BGE and the rest of Blender for their mutual benefit. At its simplest, closer integration means better viewport visualization, and more maintained code for the BGE. Stronger integration yields even more interesting ideas as Ton outlines in the blog post. As I said in my original response, this sounds like a great idea as long as those three conditions (mostly we aren't losing a lot of functionality for current BGE users) are met. As to the idea of me changing GSoC projects, I am not entirely against it, but I would like to better understand both Ton's proposal and the potential new project before jumping ship to a vague/undefined project. Regards, Daniel Stokes On Sun, Jun 16, 2013 at 10:46 PM, Benjamin Tolputt btolp...@internode.on.net wrote: On 17/06/2013, at 3:23 PM, Campbell Barton wrote: Then it may be a good argument for Daniel to make a start on interactive-animation tools, If he is amenable to the switch, then that would make a decent compromise to offer surely? While this is a valid point, (as far as I know) none of these devs have stepped up to really supporting the BGE and helping become a maintainer. They mostly submit one feature they need for their game, then become inactive with BGE dev. I wasn't pointing it out as a reason against Ton's move, I was using it to support the *earlier* point that there is a lack developer effort/focus toward the BGE. The patches/submissions to Blender aren't being accepted, a good-sized proportion of BGE advocates are recommending that one use a build that applies most of them, and yet they admit is almost a fork due to the variance between official BGE and HG1 build BGE. Perhaps it will be a benefit to both BGE and Blender if they become separate projects? Blender can focus on asset creation (with the data structures and code compromises that make that efficient) whilst the BGE can start optimising the code/structures it uses to make it better for running a game. ... you could argue this is catch22 - if we accepted their patches they would become more active and submit more fixes but I still think if someone really wanted to become active and take the BGE forward they could - despite some slow patch review. Whilst you could argue the catch-22 aspect, I'd have to disagree that slow patch review isn't a big issue in it's own right. Watching a patch wither on the vine is a very demotivating experience, especially if it fixes something and the bug is left in the main project despite you having put the effort into solving it so the core development team didn't have to. That's something being bandied about the Blender-verse lately as well. Sure, if you want to be active enough, you'll walk over shards of broken glass to keep submitting your patches but that doesn't mean we should expect them to. Again, not an argument against the BGE removal/simplification as I support/defend Ton's decision in this regard. Just pointing out that the argument (like the it's not as good as the competition one) is pretty poor on it's own. -- Benjamin Tolputt ___ Bf-committers mailing list Bf-committers@blender.org
Re: [Bf-committers] Blender roadmap article on code blog
Really good reference of GE and Animation Tool integration is Source Film Maker it's really powerful tool Allowing to record gameplay and edit it as animations in traditional fashion, even if it's point cloud bake per frame. Something like this could benefit Blender in new production workflows, action recording, puppetry. Although I would like to see REAL oss game engine, with real tools, not only naked core like most oss game engines out there... BGE is going nowhere, mostly because of license. Making it first flag citizen in Blender could ignite life into this project. Making usable engine for deployment would probably be something for it's own project. 2013/6/17 Ton Roosendaal t...@blender.org Hi Daniel, I wrote the blog post as a discussion piece, something we can spend on for months, or a year, or as much time we need. We have a quite long way to go before a new GE can be defined to be feasible anyway. I would also like to see a wide consensus about future plans for Blender. For that reason you shouldn't see it as 'bad timing', or a suggestion to refocus your work. The GE itself, and its current users, will really benefit your work now. Your gsoc project is also meant to solve a lot of current issues (bugs) anyway. I hope you can continue that work happily. (Long answer to your questions in a next mail) -Ton- Ton Roosendaal - t...@blender.org - www.blender.org Chairman Blender Foundation - Producer Blender Institute Entrepotdok 57A - 1018AD Amsterdam - The Netherlands On 17 Jun, 2013, at 8:00, Daniel Stokes wrote: I would like to know more about what Ton means by the line What should then be dropped is the idea to make Blender have an embedded “true” game engine from the blog post. What exactly is proposed to be dropped here? It looks to me all that is proposed to be dropped is an idea, changing the focus of the game engine to make it better at what it can do rather than making it a clone of other game engine/game editors. Are we actually talking about removing features and/or the ability to publish a game? The blog post mentions creating 3D interaction for walkthroughs, for scientific sims, or game prototypes. This can still make use of existing code/features as well as the ability to publish and distribute these creations. As a BGE developer I have often considered a closer integration of the BGE and the rest of Blender for their mutual benefit. At its simplest, closer integration means better viewport visualization, and more maintained code for the BGE. Stronger integration yields even more interesting ideas as Ton outlines in the blog post. As I said in my original response, this sounds like a great idea as long as those three conditions (mostly we aren't losing a lot of functionality for current BGE users) are met. As to the idea of me changing GSoC projects, I am not entirely against it, but I would like to better understand both Ton's proposal and the potential new project before jumping ship to a vague/undefined project. Regards, Daniel Stokes On Sun, Jun 16, 2013 at 10:46 PM, Benjamin Tolputt btolp...@internode.on.net wrote: On 17/06/2013, at 3:23 PM, Campbell Barton wrote: Then it may be a good argument for Daniel to make a start on interactive-animation tools, If he is amenable to the switch, then that would make a decent compromise to offer surely? While this is a valid point, (as far as I know) none of these devs have stepped up to really supporting the BGE and helping become a maintainer. They mostly submit one feature they need for their game, then become inactive with BGE dev. I wasn't pointing it out as a reason against Ton's move, I was using it to support the *earlier* point that there is a lack developer effort/focus toward the BGE. The patches/submissions to Blender aren't being accepted, a good-sized proportion of BGE advocates are recommending that one use a build that applies most of them, and yet they admit is almost a fork due to the variance between official BGE and HG1 build BGE. Perhaps it will be a benefit to both BGE and Blender if they become separate projects? Blender can focus on asset creation (with the data structures and code compromises that make that efficient) whilst the BGE can start optimising the code/structures it uses to make it better for running a game. ... you could argue this is catch22 - if we accepted their patches they would become more active and submit more fixes but I still think if someone really wanted to become active and take the BGE forward they could - despite some slow patch review. Whilst you could argue the catch-22 aspect, I'd have to disagree that slow patch review isn't a big issue in it's own right. Watching a patch wither on the vine is a very demotivating experience, especially if it
Re: [Bf-committers] Blender roadmap article on code blog
Ton, Thank you for your response. It sounds like what you have in mind is actually similar to thoughts I have already had for the game engine, though perhaps on a more ambitious scale. It would certainly help BGE development if more of the game engine code was shared with the rest of Blender. I look forward to seeing how this progresses. Regards, Daniel Stokes On Mon, Jun 17, 2013 at 10:02 AM, Przemyslaw Golab golab.przemys...@gmail.com wrote: Really good reference of GE and Animation Tool integration is Source Film Maker it's really powerful tool Allowing to record gameplay and edit it as animations in traditional fashion, even if it's point cloud bake per frame. Something like this could benefit Blender in new production workflows, action recording, puppetry. Although I would like to see REAL oss game engine, with real tools, not only naked core like most oss game engines out there... BGE is going nowhere, mostly because of license. Making it first flag citizen in Blender could ignite life into this project. Making usable engine for deployment would probably be something for it's own project. 2013/6/17 Ton Roosendaal t...@blender.org Hi Daniel, I wrote the blog post as a discussion piece, something we can spend on for months, or a year, or as much time we need. We have a quite long way to go before a new GE can be defined to be feasible anyway. I would also like to see a wide consensus about future plans for Blender. For that reason you shouldn't see it as 'bad timing', or a suggestion to refocus your work. The GE itself, and its current users, will really benefit your work now. Your gsoc project is also meant to solve a lot of current issues (bugs) anyway. I hope you can continue that work happily. (Long answer to your questions in a next mail) -Ton- Ton Roosendaal - t...@blender.org - www.blender.org Chairman Blender Foundation - Producer Blender Institute Entrepotdok 57A - 1018AD Amsterdam - The Netherlands On 17 Jun, 2013, at 8:00, Daniel Stokes wrote: I would like to know more about what Ton means by the line What should then be dropped is the idea to make Blender have an embedded “true” game engine from the blog post. What exactly is proposed to be dropped here? It looks to me all that is proposed to be dropped is an idea, changing the focus of the game engine to make it better at what it can do rather than making it a clone of other game engine/game editors. Are we actually talking about removing features and/or the ability to publish a game? The blog post mentions creating 3D interaction for walkthroughs, for scientific sims, or game prototypes. This can still make use of existing code/features as well as the ability to publish and distribute these creations. As a BGE developer I have often considered a closer integration of the BGE and the rest of Blender for their mutual benefit. At its simplest, closer integration means better viewport visualization, and more maintained code for the BGE. Stronger integration yields even more interesting ideas as Ton outlines in the blog post. As I said in my original response, this sounds like a great idea as long as those three conditions (mostly we aren't losing a lot of functionality for current BGE users) are met. As to the idea of me changing GSoC projects, I am not entirely against it, but I would like to better understand both Ton's proposal and the potential new project before jumping ship to a vague/undefined project. Regards, Daniel Stokes On Sun, Jun 16, 2013 at 10:46 PM, Benjamin Tolputt btolp...@internode.on.net wrote: On 17/06/2013, at 3:23 PM, Campbell Barton wrote: Then it may be a good argument for Daniel to make a start on interactive-animation tools, If he is amenable to the switch, then that would make a decent compromise to offer surely? While this is a valid point, (as far as I know) none of these devs have stepped up to really supporting the BGE and helping become a maintainer. They mostly submit one feature they need for their game, then become inactive with BGE dev. I wasn't pointing it out as a reason against Ton's move, I was using it to support the *earlier* point that there is a lack developer effort/focus toward the BGE. The patches/submissions to Blender aren't being accepted, a good-sized proportion of BGE advocates are recommending that one use a build that applies most of them, and yet they admit is almost a fork due to the variance between official BGE and HG1 build BGE. Perhaps it will be a benefit to both BGE and Blender if they become separate projects? Blender can focus on asset creation (with the data structures and code compromises that make that efficient) whilst the BGE can
Re: [Bf-committers] Blender roadmap article on code blog
Hi Ton, sounds great at a first glance ;) I really like the 2.7 targets. Imho we should also think about dropping WinXP support and 32bit code in the future. (Maybe for 2.8?) This would make life easier for devs as we don't have to care about legacy compatibility stuff and can focus on writing neat and fast 64bit code. And a major code cleanup might be overdue. /Jürgen -Ursprüngliche Nachricht- Von: bf-committers-boun...@blender.org [mailto:bf-committers-boun...@blender.org] Im Auftrag von Ton Roosendaal Gesendet: Sonntag, 16. Juni 2013 15:45 An: bf-blender developers Betreff: [Bf-committers] Blender roadmap article on code blog Hi all, Here's a write-up for projects and focus the next years: http://code.blender.org/ Feedback welcome :) -Ton- Ton Roosendaal - t...@blender.org - www.blender.org Chairman Blender Foundation - Producer Blender Institute Entrepotdok 57A - 1018AD Amsterdam - The Netherlands ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
You're getting some negative responses to the proposed BGE changes on the blenderartists forums, including several suggestions of forking the project: http://blenderartists.org/forum/showthread.php?297037-Project-GameBlender-a-radical-solution-involving-the-BGE-as-an-independent-project http://blenderartists.org/forum/showthread.php?297023-Future-of-the-BGE I personally think the proposed BGE changes could be interesting as long as three things happen: 1. We don't lose existing BGE features 2. We don't lose the ability to publish BGE games 3. We don't lose a focus on performance for BGE games A tighter integration of the BGE and the rest of Blender could be very beneficial to the BGE with its limited development resources, but many people fear losing the engine they have invested time into learning or developing. Furthermore, I would like to point out that the BGE is at least on par with the free version of Unity feature wise. Regards, Daniel Stokes On Sun, Jun 16, 2013 at 6:53 AM, Jürgen Herrmann shadow...@me.com wrote: Hi Ton, sounds great at a first glance ;) I really like the 2.7 targets. Imho we should also think about dropping WinXP support and 32bit code in the future. (Maybe for 2.8?) This would make life easier for devs as we don't have to care about legacy compatibility stuff and can focus on writing neat and fast 64bit code. And a major code cleanup might be overdue. /Jürgen -Ursprüngliche Nachricht- Von: bf-committers-boun...@blender.org [mailto:bf-committers-boun...@blender.org] Im Auftrag von Ton Roosendaal Gesendet: Sonntag, 16. Juni 2013 15:45 An: bf-blender developers Betreff: [Bf-committers] Blender roadmap article on code blog Hi all, Here's a write-up for projects and focus the next years: http://code.blender.org/ Feedback welcome :) -Ton- Ton Roosendaal - t...@blender.org - www.blender.org Chairman Blender Foundation - Producer Blender Institute Entrepotdok 57A - 1018AD Amsterdam - The Netherlands ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
Hi Jürgen Herrmann. Stop stealing my april fools prank. Afaik, there aren't any significant Windows API additions in vista/7/8 which we might use (Like raw input) Plus, if a program has pointers right, x32/x64 compatibility isn't that hard. Plus, we already have DNA conversion, including endiness. On the countrary, I would encourage to support x32 ( and even PPC architecture) to ensure portability. Best, Alex On 6/16/2013 9:53 AM, Jürgen Herrmann wrote: Hi Ton, sounds great at a first glance ;) I really like the 2.7 targets. Imho we should also think about dropping WinXP support and 32bit code in the future. (Maybe for 2.8?) This would make life easier for devs as we don't have to care about legacy compatibility stuff and can focus on writing neat and fast 64bit code. And a major code cleanup might be overdue. /Jürgen -Ursprüngliche Nachricht- Von: bf-committers-boun...@blender.org [mailto:bf-committers-boun...@blender.org] Im Auftrag von Ton Roosendaal Gesendet: Sonntag, 16. Juni 2013 15:45 An: bf-blender developers Betreff: [Bf-committers] Blender roadmap article on code blog Hi all, Here's a write-up for projects and focus the next years: http://code.blender.org/ Feedback welcome :) -Ton- Ton Roosendaal - t...@blender.org - www.blender.org Chairman Blender Foundation - Producer Blender Institute Entrepotdok 57A - 1018AD Amsterdam - The Netherlands ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
On 17/06/2013, at 11:46 AM, Daniel Stokes wrote: Furthermore, I would like to point out that the BGE is at least on par with the free version of Unity feature wise. Firstly, let me state that whilst I actually approve of Ton's moves regarding BGE, I'm not writing this email in an effort to discourage those that want to keep the BGE (or their favourite elements thereof) in core Blender. Whilst I prefer alternate engines for various reasons, I see no problems with there being an official game engine for Blender should the issues Ton raised in the blog be resolved (in particular, the developer effort issue). With that said, and without actually being a Unity evangelist (I too don't use it), the above is false and needs to be corrected in the same email archive as the claim was made. BGE is *not* on par with the free version of Unity feature wise. Unity has multiplayer support for free, BGE does not Unity has (working) animation tools Blender BGE do not. Including animation specific state machine blend tree support. Unity also has built-in PVS occlusion culling, LOD terrain foliage, automated texture atlasing, integrated Web Browser plugin (with bi-directional API access to/from the browser), one-click iOS Android deployment, and so on. That's just the free version (the pro one has quite a bit more over above BGE). There are features out of the box that BGE has that Unity Free does not (Detour/Recast nav-mesh routing comes to mind), but that means BGE has an alternate feature-set to Unity Free, not really one on par with it. As one of the reasons Ton mentioned for the decision regarding the BGE was the lack of a competitive featureset compared to other offerings, we need to be honest about these things if we're going to discuss changes to his proposal on the matter. -- Benjamin Tolputt ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
Hi Alexandr, I am actually not fooling on this. One example for API not present in XP is : InterlockedCompareExchange64 ( http://msdn.microsoft.com/en-us/library/windows/desktop/ms683562(v=vs.85).aspx) But that is actually not the problem! MS drops XP support next year, so XP users will get rare. Why should we support XP in blender 2.7/2.8? 32/64 bit portability is just more work to do. You loose speed in some places but you might be right. Just for portability this might be good. But on the other hand who uses 32bit applications in 3D? It makes absolutely no sense to stay in 32bits when you can have more Memory in a 3D application ;) /Jürgen Am 17.06.2013 um 04:18 schrieb Alexandr Kuznetsov kuzsa...@gmail.com: Hi Jürgen Herrmann. Stop stealing my april fools prank. Afaik, there aren't any significant Windows API additions in vista/7/8 which we might use (Like raw input) Plus, if a program has pointers right, x32/x64 compatibility isn't that hard. Plus, we already have DNA conversion, including endiness. On the countrary, I would encourage to support x32 ( and even PPC architecture) to ensure portability. Best, Alex On 6/16/2013 9:53 AM, Jürgen Herrmann wrote: Hi Ton, sounds great at a first glance ;) I really like the 2.7 targets. Imho we should also think about dropping WinXP support and 32bit code in the future. (Maybe for 2.8?) This would make life easier for devs as we don't have to care about legacy compatibility stuff and can focus on writing neat and fast 64bit code. And a major code cleanup might be overdue. /Jürgen -Ursprüngliche Nachricht- Von: bf-committers-boun...@blender.org [mailto:bf-committers-boun...@blender.org] Im Auftrag von Ton Roosendaal Gesendet: Sonntag, 16. Juni 2013 15:45 An: bf-blender developers Betreff: [Bf-committers] Blender roadmap article on code blog Hi all, Here's a write-up for projects and focus the next years: http://code.blender.org/ Feedback welcome :) -Ton- Ton Roosendaal - t...@blender.org - www.blender.org Chairman Blender Foundation - Producer Blender Institute Entrepotdok 57A - 1018AD Amsterdam - The Netherlands ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
Regarding dropping the current BGE. Not being as good as competition is a stupid argument (on its own), quite a few of blenders features aren't as good as other software. Why not kick out the video editor because its inferior to most-commercial-video-editors ? The problem IMHO is more that the BGE is not getting much developer attention and not likely to pick up any time soon. While I'm not against improving interactive features for Blenders animation system, I think this wont make for a great game-engine (probably it just gives us handy utility to use for small demos). Since we currently don't have so much developer interest to work in the game-engine, I'm wondering who has the time to work on an interactive animation system (not just get it working but make it work really well, alpha sorting, fast add/remove objects without depsgraph recalcs, python api's to physics world so you can react to collisions, add ability to write own shaders, etc...). The timing here is unfortunate too. It's not nice for Daniel Stokes to find out the BGE will be discontinued the day he starts working on GSOC. (BGE Level of Detail and Bug Fixing/Polishing) Bug-fixing a system that gets removed in a year isn't such good use of resources. ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
Hi Thomas, You are right, I just said we should think about it, not do it right away ;) But IMHO we are limiting ourselves to a technology that will get obsolete in the future. Maybe I am a bit too fast on that one... Maybe 3.0 would be a better choice for this. /Jürgen Am 17.06.2013 um 06:34 schrieb Thomas Dinges blen...@dingto.org: Hi, you should keep in mind that Blender is also very much used in poor countries, where a lot of people still use XP and X32. At one point, yes we should not worry about Windows XP anymore, but doing this before MS drops support is premature. Dropping x32 will not happen any time soon though. Even Windows 8 is still available as x32 version. Again, you have to see the larger picture. There are a lot of people who cannot simply buy a new computer with x64 support. ;) Thomas Am 17.06.2013 06:27, schrieb Jürgen Herrmann: Hi Alexandr, I am actually not fooling on this. One example for API not present in XP is : InterlockedCompareExchange64 ( http://msdn.microsoft.com/en-us/library/windows/desktop/ms683562(v=vs.85).aspx) But that is actually not the problem! MS drops XP support next year, so XP users will get rare. Why should we support XP in blender 2.7/2.8? 32/64 bit portability is just more work to do. You loose speed in some places but you might be right. Just for portability this might be good. But on the other hand who uses 32bit applications in 3D? It makes absolutely no sense to stay in 32bits when you can have more Memory in a 3D application ;) /Jürgen Am 17.06.2013 um 04:18 schrieb Alexandr Kuznetsov kuzsa...@gmail.com: Hi Jürgen Herrmann. Stop stealing my april fools prank. Afaik, there aren't any significant Windows API additions in vista/7/8 which we might use (Like raw input) Plus, if a program has pointers right, x32/x64 compatibility isn't that hard. Plus, we already have DNA conversion, including endiness. On the countrary, I would encourage to support x32 ( and even PPC architecture) to ensure portability. Best, Alex On 6/16/2013 9:53 AM, Jürgen Herrmann wrote: Hi Ton, sounds great at a first glance ;) I really like the 2.7 targets. Imho we should also think about dropping WinXP support and 32bit code in the future. (Maybe for 2.8?) This would make life easier for devs as we don't have to care about legacy compatibility stuff and can focus on writing neat and fast 64bit code. And a major code cleanup might be overdue. /Jürgen -- Thomas Dinges Blender Developer, Artist and Musician www.dingto.org ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
Hi, you should keep in mind that Blender is also very much used in poor countries, where a lot of people still use XP and X32. At one point, yes we should not worry about Windows XP anymore, but doing this before MS drops support is premature. Dropping x32 will not happen any time soon though. Even Windows 8 is still available as x32 version. Again, you have to see the larger picture. There are a lot of people who cannot simply buy a new computer with x64 support. ;) Thomas Am 17.06.2013 06:27, schrieb Jürgen Herrmann: Hi Alexandr, I am actually not fooling on this. One example for API not present in XP is : InterlockedCompareExchange64 ( http://msdn.microsoft.com/en-us/library/windows/desktop/ms683562(v=vs.85).aspx) But that is actually not the problem! MS drops XP support next year, so XP users will get rare. Why should we support XP in blender 2.7/2.8? 32/64 bit portability is just more work to do. You loose speed in some places but you might be right. Just for portability this might be good. But on the other hand who uses 32bit applications in 3D? It makes absolutely no sense to stay in 32bits when you can have more Memory in a 3D application ;) /Jürgen Am 17.06.2013 um 04:18 schrieb Alexandr Kuznetsov kuzsa...@gmail.com: Hi Jürgen Herrmann. Stop stealing my april fools prank. Afaik, there aren't any significant Windows API additions in vista/7/8 which we might use (Like raw input) Plus, if a program has pointers right, x32/x64 compatibility isn't that hard. Plus, we already have DNA conversion, including endiness. On the countrary, I would encourage to support x32 ( and even PPC architecture) to ensure portability. Best, Alex On 6/16/2013 9:53 AM, Jürgen Herrmann wrote: Hi Ton, sounds great at a first glance ;) I really like the 2.7 targets. Imho we should also think about dropping WinXP support and 32bit code in the future. (Maybe for 2.8?) This would make life easier for devs as we don't have to care about legacy compatibility stuff and can focus on writing neat and fast 64bit code. And a major code cleanup might be overdue. /Jürgen -- Thomas Dinges Blender Developer, Artist and Musician www.dingto.org ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
Drop linux. It has 1% market share, less than xp. No more x11 hacks. And Mac OS X Tiger. Oops, too late. Somebody already did it. On 6/17/2013 12:46 AM, Harley Acheson wrote: Jürgen, If we are considering dropping Windows XP we should probably also consider dropping the other operating systems that have even less usage. Which is everything else besides Windows 7. So every version of Mac and all flavors of Linux combined. LOL Harley ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
Jürgen, If we are considering dropping Windows XP we should probably also consider dropping the other operating systems that have even less usage. Which is everything else besides Windows 7. So every version of Mac and all flavors of Linux combined. LOL Harley ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
On 17/06/2013, at 2:41 PM, Campbell Barton wrote: Not being as good as competition is a stupid argument (on its own), quite a few of blenders features aren't as good as other software. Agreed. On it's own, it's a terrible argument. After all, there are *dedicated* game engines out there that are worse than their competition ;) Some of the reasons *why* is isn't as good as the competition are worthy arguments though, but I don't think Ton is making them directly. Possibly to sidestep the argument that would entail (I've made the mistake before of punching that there tar-baby *eek* ). The problem IMHO is more that the BGE is not getting much developer attention and not likely to pick up any time soon. This I think is the kicker. Where development effort is spent is a frequent subject in the Blender-verse these days and for good reasons. Only the features that have developer focus get maintained and improved. Features that are not maintained in a larger body of work can have a detrimental affect on other areas (e.g. This module relies on feature X using function Y - we can't change function Y without altering the module... and we don't really maintain that module anymore). The timing here is unfortunate too. It's not nice for Daniel Stokes to find out the BGE will be discontinued the day he starts working on GSOC. (BGE Level of Detail and Bug Fixing/Polishing) Bug-fixing a system that gets removed in a year isn't such good use of resources. I was unaware of this and have to agree, the timing sucks. That said, I'm not sure if it's a great argument for keeping the BGE as it is and integrated as it is. The whole sunk cost fallacy comes to mind and, while I don't want to be callous to Daniel Stokes, I can't see that his GSOC project will really change the underlying motivations that prompted this move. There are folks on BlenderArtists talking about the large number of patches contributed for BGE that never made trunk and would almost constitute a fork themselves if applied (they're calling it the HG1 build. This is a symptom of the developer effort allocation problem mentioned earlier and would apply as much to a GSOC project as any other large patch correct? -- Benjamin Tolputt ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
Okay! Now it gets ridiculous :-D Guys you are right, market share is the point I missed. But still in my opinion we are limiting blender to old tech whilst other 3D software goes ahead and drops old stuff much faster ;-) I think 2.9/3.0 won't be here before 2016, so I am talking about a 3-4 year period. I don't want to kill XP tomorrow ;) Am 17.06.2013 um 06:52 schrieb Alexandr Kuznetsov kuzsa...@gmail.com: Drop linux. It has 1% market share, less than xp. No more x11 hacks. And Mac OS X Tiger. Oops, too late. Somebody already did it. On 6/17/2013 12:46 AM, Harley Acheson wrote: Jürgen, If we are considering dropping Windows XP we should probably also consider dropping the other operating systems that have even less usage. Which is everything else besides Windows 7. So every version of Mac and all flavors of Linux combined. LOL Harley ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
The timing here is unfortunate too. It's not nice for Daniel Stokes to find out the BGE will be discontinued the day he starts working on GSOC. (BGE Level of Detail and Bug Fixing/Polishing) Bug-fixing a system that gets removed in a year isn't such good use of resources. I was unaware of this and have to agree, the timing sucks. That said, I'm not sure if it's a great argument for keeping the BGE as it is and integrated as it is. The whole sunk cost fallacy comes to mind and, while I don't want to be callous to Daniel Stokes, I can't see that his GSOC project will really change the underlying motivations that prompted this move. Then it may be a good argument for Daniel to make a start on interactive-animation tools, There are folks on BlenderArtists talking about the large number of patches contributed for BGE that never made trunk and would almost constitute a fork themselves if applied (they're calling it the HG1 build. This is a symptom of the developer effort allocation problem mentioned earlier and would apply as much to a GSOC project as any other large patch correct? While this is a valid point, (as far as I know) none of these devs have stepped up to really supporting the BGE and helping become a maintainer. They mostly submit one feature they need for their game, then become inactive with BGE dev. ... you could argue this is catch22 - if we accepted their patches they would become more active and submit more fixes but I still think if someone really wanted to become active and take the BGE forward they could - despite some slow patch review. -- Benjamin Tolputt ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers -- - Campbell ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers
Re: [Bf-committers] Blender roadmap article on code blog
On 17/06/2013, at 3:23 PM, Campbell Barton wrote: Then it may be a good argument for Daniel to make a start on interactive-animation tools, If he is amenable to the switch, then that would make a decent compromise to offer surely? While this is a valid point, (as far as I know) none of these devs have stepped up to really supporting the BGE and helping become a maintainer. They mostly submit one feature they need for their game, then become inactive with BGE dev. I wasn't pointing it out as a reason against Ton's move, I was using it to support the *earlier* point that there is a lack developer effort/focus toward the BGE. The patches/submissions to Blender aren't being accepted, a good-sized proportion of BGE advocates are recommending that one use a build that applies most of them, and yet they admit is almost a fork due to the variance between official BGE and HG1 build BGE. Perhaps it will be a benefit to both BGE and Blender if they become separate projects? Blender can focus on asset creation (with the data structures and code compromises that make that efficient) whilst the BGE can start optimising the code/structures it uses to make it better for running a game. ... you could argue this is catch22 - if we accepted their patches they would become more active and submit more fixes but I still think if someone really wanted to become active and take the BGE forward they could - despite some slow patch review. Whilst you could argue the catch-22 aspect, I'd have to disagree that slow patch review isn't a big issue in it's own right. Watching a patch wither on the vine is a very demotivating experience, especially if it fixes something and the bug is left in the main project despite you having put the effort into solving it so the core development team didn't have to. That's something being bandied about the Blender-verse lately as well. Sure, if you want to be active enough, you'll walk over shards of broken glass to keep submitting your patches but that doesn't mean we should expect them to. Again, not an argument against the BGE removal/simplification as I support/defend Ton's decision in this regard. Just pointing out that the argument (like the it's not as good as the competition one) is pretty poor on it's own. -- Benjamin Tolputt ___ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers