# Can someone please explain it...

• @redphantom It's a myth perpetuated by the competition.

It's the competition who believe that one should scrap everything you ever purchased and use only the newest. Heck, if they didn't convince their users of that, they would die on the vine - it's their whole mode of marketing.

• One thing I wish Poser WOULD do is to open up a bit more of Poser's functionality and control to Python scripters.

• Everybody here seems to support the idea that we can have backward compatibility while having new features. So where does the idea come from that we can't?

Let me join the choir. Yes, backward compatibility and new features can go together very well.

The only real hurdle on backward compatibility for content was taken with the introduction of Superfly.
The core process of Poser is very simple:
1 - In a Cartesian system define polygons with material properties attached that make these polygons show up in certain ways in a render process.
2- Render (OpenGL_preview, SreeD_preview, Firefly, Superfly, Sketch) and get image.

How the polygons come into that particular arrangement in that Cartesian space is immaterial. They can come from Poser native functionality or from add-ons. Thus, any source of polygons and any manipulation of polygons can be added. I wil not mention DSON, but anynone remember Snarly's subdivider? There is absolutely nothing that prevents a clever programmer to work out his own library system of vamp figures with skin simulated by full soft body mechanics and pump the resulting polygons into the scene next to a Poser 1 figure. The new tech figure may have its own control mechanism when not compatible with Poser dials. In the end both extremes are just a bunch of polygons.
Likewise, if someone would care to sit down and link for example somehing like surface evolver, the result would still be just a bunch of polygons with material properties attached, representing any form of blob or even splash. Polygons are polygons. Sources of polygons can co-exist.
BTW: (before anyone begins to blow that pipe: yes such sort of add-ons would need to be maintained, but that is a management issue and not the subject at hand)
Code driving the Poser 1 figure may be a jungle, but a jungle is constant as long as you do not try to mess with it The present jungle was ported to work in a 64 bits environment so that will work for a while.

Old and new can have their own pipe. The point where it gets critical is where old and new become mixed and have to be processed in one single pipe. The render engine, in particular the preview render engine, has to deal with modern and old shaders. OpenGL is still pretty standard and Superfly is, as far as I know, as good a render engine as they come today.
That is all working now to reasonable satisfaction using shaders from the same material room.

I conclude the idea that backward compatibility of content holding back development in Poser is a myth, which is busted herewith.

• @F_Verbaas Well, now you gotta blow it up!

• @F_Verbaas Thanks for the explanation!

• I would think the backward compatibility of new content holds back Poser because it removes the need for users to upgrade their copy of Poser. ...and that has a direct impact on revenue.

Note: I'm not saying it should be done just for the sake of forcing sales!

• @prixat Poser doesn't sell content. It sells software. Forcing people to buy new content doesn't do Poser any good at all, although I'm sure DAZ appreciates them when they do.

• @prixat Since Miki4, you have to buy the new Poser to use the new figures.

I think people are confusing backward compatibility. It simply means I can still use the old models (backward) with the new software. Old mt5 materials still work on new models, etc.

Backward compatibility is a property of a system, product, or technology that allows for interoperability with an older legacy system, or with input designed for such a system, especially in telecommunications and computing. Backward compatibility is sometimes abbreviated to BC, or called downward compatibility.

• @eclark1849
It's the peculiar version of Backwards Compatibility that we've all seen in the forums, where owners of earlier versions of Poser call for functionality or content that they've seen in later versions. But they don't want to buy the later version they want it in their current version!!!

It's not about forcing the sale of new content, I'm suggesting more emphasis on "encouraging" people to buy new Poser!

• @prixat ROFL, yeah, I've seen that too. Poser is supposed to magically make old content do what new content does.

But, of course, that has nothing to do with backward compatibility - that has to do with user expectations which are unreasonable.

The best way to encourage users to take up the newest version is for vendors to create products which are only usable in that version and above. This is where I think Poser falls down on the job - Content Paradise should be a showcase for vendors who are supporting their new figures and software. It should have very strict quality control and show off only those products which promote the software with required high quality renders and promos.

• @eclark1849
I don't think anyone is forcing anyone else to buy new content. The old content still works in Poser.

But if you want a figure that is completely weight mapped and uses the full feature set of Poser 11, you need a figure that was designed in Poser 11, and you need Poser 11 to work with it.

If you want a figure that will work in earlier versions of Poser, you develop it in an earlier version of Poser. But the people that are looking for the latest and greatest features found in Poser 11 will be disappointed that those newer features aren't supported in the figure.

Either decision will make some users unhappy. Which does one pick?

• One thing I wish Poser WOULD do is to open up a bit more of Poser's functionality and control to Python scripters.

Absolutely, this. I do a lot of weightmap tweaking as I work, but I also maintain several characters using the same base figure. Some of the figures are customized such that the blanket "copy joints from" command screws up some maps every time I use it. So I have to manually copy-paste all the weight maps between figures, to be sure of a good transfer. Enabling the direct weightmap copying in Python would save me hours of tedious work.

Expanding Python to allow scripts access to the interface, for direct manipulation of the 3D objects, would open up a lot of possibilities. Allowing Python customization of morph brush algorithms would really help with some things. Man, I want more Python options.

• @cdrei agreed, and better poly / vert selection (loops random etc)

• I had a product called Crying Time, that used a Python script to apply tears and bump maps to any V4/M4 figure. Poser was updated to a new version of python (with so far as I can see, no visible benefit) and suddenly that much used tool no longer works.

Offhand, does the same incompatibility still apply if the script's .py instead of .pyc?

• No more Poser 4 content, toss out Posette, burn V4, no more ugly,
if they're not going to update the hair? face room etc - rip them out.
ditch it all.
I want new, I want shiny, I want attractive, I want modern. :)

I'm old and would be happy if the ditched all the backward compatible ;P

• I had a product called Crying Time, that used a Python script to apply tears and bump maps to any V4/M4 figure. Poser was updated to a new version of python (with so far as I can see, no visible benefit) and suddenly that much used tool no longer works.

Offhand, does the same incompatibility still apply if the script's .py instead of .pyc?

Of course not.

This is something I've long wanted to explain.

The .pyc or "cached" pre-compiled version of the original py file is an INTERNAL binary cache format, which changes with each change in the Python interpreter.

It never was and still is not a supported medium of exchange for Python scripts. Officially, nobody is supposed to be distributing .pyc files, in particular because the .pyc, when it changes, is changing due to an incompatibility between versions of Python.

Now you may ask why do Poser python script authors violate the rules and distribute there scripts as .pyc files when they're officially NOT supposed to do that? The answer is they hope to keep the script's source code a secret so that would-be copyright violators cannot learn from or exploit the original scripts. Note that Python has very good de-compilers that can reverse the .pyc file back to a readable .py file and so the tactic is misplaced. It doesn't prevent evil programmers from reading the script. It does prevent legit users from using the script as they should be able to.

But the irony is that everybody blames Poser for the change in .pyc file format when they SHOULD be refusing to accept scripts from vendors in this format. The scripts should be in .py file format -- anything else is just bad practice on the part of the vendor.

If the vendor would distribute the .py file instead of the .pyc file, it would be compatible with every version of Poser Python that follows the original for which it was made, provided the methods that are called still exist in whatever version you're trying to use it in. So far that has always been the case except when the Poser 4 render engine was dropped.

• Note -- before anybody shoots me for doing the same, i.e. my matmatic files are .pyc, let me point out that it seemed like a good idea at the time. (11 years ago)

I have since learned the true nature of .pyc files and how they change all the time, so I won't be doing that anymore.

• If you have thousands of dollars in content, you would like to use it in the new poser version you buy.

It is great and necessary to add new features to Poser, but I think it is a good thing you can use your old content in that new version.

Ach, when you look at this from a distance, Poser is pretty "easy" on content.
All you need is an obj file and a texture.

Newer Poser versions can improve many and add even more tools, but when you go BTB (Back To Basics), all you need are the obj and the texture.

Digital content does not "age".
Something you bought many - many years ago is still as good now as it was then.

Ok, sometimes, you need to adjust the material setup, or adapt the rigging to newer figures or possibilities, certainly if you want to use the newer render engines or the newer figures, but basically? You don't need much to continue to use your investment.

Many complain about the 10 year old and obsolete M4-V4, but seeing the tons of support items released and bought over that timespan, they have many years of life still to go.

Poser will continue to grow as long as they keep the obj - Cr2 file format.

Hell, to adapt ANYTHING, and I mean "ANYTHING" all you need is a txt editor. LOL.

• @adi If that doesn't kill Poser, nothing will.