@Alan, indeed, I usually tend to stay simple... >>> datetime.datetime.now().strftime("%Y%m%d%H%M%S") '20130711232548'
is imho acceptable as the number of bytes is constant and the format is easy and fast to parse for the datetime implementation. you still might find crazy stuff to pack a timestamp, though, I don't see any direct benefits. @Gene, I know. I am going to have more free time this summer, I might give a hand. 2013/7/11 Gene Crucean <emailgeneonthel...@gmail.com> > Hehe... I love unixtime and use it for all kinds of stuff. The way I see > it, if my code is still around in 2038, I did DAMN good :D > > I feel ya Jo. I'd love to abstract all this but my Python skills are weak > at best. I'm an Obj-C guy and can't stand python to be honest. Please feel > free to tweak it and shoot me a pull request if you feel strong enough > about it. > > > On Thu, Jul 11, 2013 at 11:15 PM, Alan Fregtman > <alan.fregt...@gmail.com>wrote: > >> *Oh my...* >> >> So what's the ideal short-form datetime storage? A long string? >> >> >> >> On Fri, Jul 12, 2013 at 2:00 AM, jo benayoun <jobenay...@gmail.com>wrote: >> >>> well job Gene, >>> I would now spent a bit of time on the code itself to make it more >>> flexible. It would be great to have clear separation between plugins, core >>> lib and ui code imho. >>> >>> @Alan, don't do that please... >>> http://en.wikipedia.org/wiki/Year_2038_problem >>> >>> >>> 2013/7/11 Alan Fregtman <alan.fregt...@gmail.com> >>> >>>> Minor pet peeve with how you're storing date and time as a string... >>>> you're missing seconds! but I think it might be more efficient to store the >>>> unix timestamp (seconds since epoch) instead of a fully formatted long >>>> string. Let the reader module handle the datetime formatting. >>>> >>>> >>>> >>>> On Thu, Jul 11, 2013 at 9:41 PM, Gene Crucean < >>>> emailgeneonthel...@gmail.com> wrote: >>>> >>>>> Update: https://bitbucket.org/crewshin/json-cam >>>>> >>>>> Output file: >>>>> https://bitbucket.org/crewshin/json-cam/src/bae3c009d10002aa6d033036079064eda9d4d8d0/FromSoftimage.cam?at=master >>>>> >>>>> ScreenGrabs: >>>>> >>>>> https://bitbucket.org/crewshin/json-cam/src/bae3c009d10002aa6d033036079064eda9d4d8d0/Export.png?at=master >>>>> >>>>> https://bitbucket.org/crewshin/json-cam/src/bae3c009d10002aa6d033036079064eda9d4d8d0/Import.png?at=master >>>>> >>>>> Spec: >>>>> https://bitbucket.org/crewshin/json-cam/src/bae3c009d10002aa6d033036079064eda9d4d8d0/SPEC_1.0.txt?at=master >>>>> >>>>> >>>>> Thoughts so far? I should have Maya in the next day or so. Btw, feel >>>>> free to send pull requests for tweaks if interested. >>>>> >>>>> >>>>> @Jordi: Wanna give that Houdini .otl a test? >>>>> >>>>> >>>>> >>>>> On Thu, Jul 11, 2013 at 8:56 AM, Gene Crucean < >>>>> emailgeneonthel...@gmail.com> wrote: >>>>> >>>>>> RE animatable parameters: This spec currently allows for any param to >>>>>> be animatable by just adding it to the "anim" dictionary. All the >>>>>> importers/exporters would have to do is simply check if any param besides >>>>>> transforms exist and add keyframes. This would be left up to the >>>>>> individual >>>>>> app scripts to implement, but the spec itself would allow for anything to >>>>>> be animatable. >>>>>> >>>>>> >>>>>> On Thu, Jul 11, 2013 at 1:41 AM, Michael Heberlein < >>>>>> micheberl...@gmail.com> wrote: >>>>>> >>>>>>> A bit off-topic already :) but I just found pyalembic in Gohlkes >>>>>>> invaluable Windows binaries list: >>>>>>> http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyalembic >>>>>>> >>>>>>> But I also agree that something as simple and readable as JSON would >>>>>>> be cool to have for (plotted?) world-space camera exchange. And _all_ >>>>>>> parameters should be animatable. >>>>>>> >>>>>>> Michael >>>>>>> >>>>>>> >>>>>>> On Thu, Jul 11, 2013 at 6:17 AM, Raffaele Fragapane < >>>>>>> raffsxsil...@googlemail.com> wrote: >>>>>>> >>>>>>>> The unit needs only be an arbitrary value in the header. >>>>>>>> Autodesk can say whatever it wants, but the truth is that if you >>>>>>>> change maya from imperial to metric at the beginning of a project (and >>>>>>>> you >>>>>>>> might have that on client's side) there will be repercussions, and if >>>>>>>> your >>>>>>>> cameras were intended as 1cm but get imported as 1 inch things will be >>>>>>>> out >>>>>>>> of whack. Majorly. >>>>>>>> >>>>>>>> Several parameters, especially so if this will get a further level >>>>>>>> of abstraction later on, are actually world scale dependent. >>>>>>>> The flm back can change with a unit change (in some apps it does, >>>>>>>> in some it doesn't), several rendering and grooming parameters change >>>>>>>> and >>>>>>>> so on. >>>>>>>> >>>>>>>> As for scale, I've had plenty instances when the camera was scaled >>>>>>>> for various reasons, frequently enough to be relevant entire chunks of >>>>>>>> a >>>>>>>> pipe would rely on a stupid-renderman-trick style scaled camera. >>>>>>>> >>>>>>>> >>>>>>>> On Thu, Jul 11, 2013 at 2:10 PM, Gene Crucean < >>>>>>>> emailgeneonthel...@gmail.com> wrote: >>>>>>>> >>>>>>>>> Thanks for the input guys! I'm ingesting all of it :) >>>>>>>>> >>>>>>>>> I'm quite against adding units into the main camera section of the >>>>>>>>> file... but what about adding them to the metadata section? I really >>>>>>>>> don't >>>>>>>>> understand why anyone would want this in the file though. Units >>>>>>>>> should only >>>>>>>>> be conceptual imo. Autodesk says that 1 SI unit = 1 decimeter, but it >>>>>>>>> has >>>>>>>>> no concept of units... at all. Our current project is in meters, so >>>>>>>>> conceptually we just know that 1 SI unit = 1 meter. Did we change >>>>>>>>> anything? >>>>>>>>> Nope. Same thing in Maya... 1 unit = 1 meter. Didn't change a thing >>>>>>>>> on the >>>>>>>>> Maya side either. I would love for someone to give me an example of >>>>>>>>> why >>>>>>>>> this should be different. >>>>>>>>> >>>>>>>>> Either way, I'll have an update tomorrow at some point, along with >>>>>>>>> i/o for Houdini and updated Soft scripts. Maya is next and then >>>>>>>>> hopefully I >>>>>>>>> can talk one of our Nuke dev's into banging out an importer. Unless >>>>>>>>> someone >>>>>>>>> on here knows it's API and want's to donate some skills (once the 1.0 >>>>>>>>> spec >>>>>>>>> is finished). Same with any other apps :) >>>>>>>>> >>>>>>>>> Cheers >>>>>>>>> >>>>>>>>> >>>>>>>>> On Wed, Jul 10, 2013 at 6:59 PM, Matt Lind < >>>>>>>>> ml...@carbinestudios.com> wrote: >>>>>>>>> >>>>>>>>>> I started a toolset a few years ago based on XML as well. It >>>>>>>>>> works and I can store robust data, but the downside is the file >>>>>>>>>> sizes are >>>>>>>>>> huge and slow to read/write. Memory becomes an issue at some point. >>>>>>>>>> If >>>>>>>>>> you only want to transfer cameras or simple stuff, it works fine, >>>>>>>>>> but large >>>>>>>>>> scenes with lots of animation data is not advised with XML as other >>>>>>>>>> formats >>>>>>>>>> may be better suited.**** >>>>>>>>>> >>>>>>>>>> ** ** >>>>>>>>>> >>>>>>>>>> Matt**** >>>>>>>>>> >>>>>>>>>> ** ** >>>>>>>>>> >>>>>>>>>> ** ** >>>>>>>>>> >>>>>>>>>> ** ** >>>>>>>>>> >>>>>>>>>> ** ** >>>>>>>>>> >>>>>>>>>> ** ** >>>>>>>>>> >>>>>>>>>> *From:* softimage-boun...@listproc.autodesk.com [mailto: >>>>>>>>>> softimage-boun...@listproc.autodesk.com] *On Behalf Of *Tim >>>>>>>>>> Crowson >>>>>>>>>> *Sent:* Wednesday, July 10, 2013 5:34 PM >>>>>>>>>> *To:* softimage@listproc.autodesk.com >>>>>>>>>> *Subject:* Re: Open source json camera I/O platform**** >>>>>>>>>> >>>>>>>>>> ** ** >>>>>>>>>> >>>>>>>>>> This is great to see! I have something similar in the wings >>>>>>>>>> that's only partially implemented, but in XML instead. It stores >>>>>>>>>> most of >>>>>>>>>> the stuff Jo was talking about. I wrote it as a way to export >>>>>>>>>> cameras and >>>>>>>>>> nulls to Nuke and Fusion. My goal is to have a series of tools for >>>>>>>>>> various >>>>>>>>>> apps all writing and reading a common XML file. Cameras and nulls >>>>>>>>>> can be >>>>>>>>>> exported, then updated if something changes. With custom UI for >>>>>>>>>> setting >>>>>>>>>> options. Anyway, I haven't finished writing all the different >>>>>>>>>> plugins, but >>>>>>>>>> I've got a couple of apps covered already. I debated between JSON >>>>>>>>>> and XML >>>>>>>>>> and finally just went with XML. >>>>>>>>>> >>>>>>>>>> Glad to see this in the works, Gene! Can't wait to see more! >>>>>>>>>> >>>>>>>>>> -Tim C >>>>>>>>>> >>>>>>>>>> **** >>>>>>>>>> >>>>>>>>>> On 7/10/2013 7:10 PM, Raffaele Fragapane wrote:**** >>>>>>>>>> >>>>>>>>>> When you'll have at most a few dozen curves, even on a thousand >>>>>>>>>> frame long sequence, I honestly don't think cheapening the data >>>>>>>>>> matters one >>>>>>>>>> iota.**** >>>>>>>>>> >>>>>>>>>> You can always introduce a zip compression stage to the I/O.**** >>>>>>>>>> >>>>>>>>>> Optimizing early and ending data poor is always a mistake. >>>>>>>>>> Purging is easy, both on I/O and in dev terms, adding data you don't >>>>>>>>>> have >>>>>>>>>> is usually betwene painful and downright impossible.**** >>>>>>>>>> >>>>>>>>>> If footprint was a concern here, sure, it'd make sense, on >>>>>>>>>> something that on a bad day will have a hundred parameters at the >>>>>>>>>> most (and >>>>>>>>>> for a mono cam I'd struggle to think of a hundred parameters I'd want >>>>>>>>>> animated) saving 16 floats per frame instead of 64 makes little >>>>>>>>>> difference >>>>>>>>>> in practical terms.**** >>>>>>>>>> >>>>>>>>>> ** ** >>>>>>>>>> >>>>>>>>>> On Thu, Jul 11, 2013 at 10:01 AM, Alok Gandhi < >>>>>>>>>> alok.gandhi2...@gmail.com> wrote:**** >>>>>>>>>> >>>>>>>>>> Hey Gene looking at your schema I do not see animated value for >>>>>>>>>> parameters like focal length, near and far planes. Though near and >>>>>>>>>> far are >>>>>>>>>> not usually keyed but you never know. I have worked on a stereoscopic >>>>>>>>>> project and we did need to plot the clipping planes. Anyways, focal >>>>>>>>>> length >>>>>>>>>> does fairly get animated at times. In the interest of generality and >>>>>>>>>> being >>>>>>>>>> generic I would make room for values for nearly all animatable >>>>>>>>>> parameters. >>>>>>>>>> For the case of optimization the writer plugin can use only one >>>>>>>>>> value in >>>>>>>>>> the list if the parameter is not animated else it will take all the >>>>>>>>>> key >>>>>>>>>> frame values. Also I would not care for the whole keyframe and >>>>>>>>>> tangent data >>>>>>>>>> in the list but would simply read the values of all parameters at >>>>>>>>>> each >>>>>>>>>> frame and plot the same when I am reading the values. But what you >>>>>>>>>> are >>>>>>>>>> doing with keyframes value storage also works, in fact I think it >>>>>>>>>> reduces >>>>>>>>>> the file size considerably in case you do not have much keyframes in >>>>>>>>>> the >>>>>>>>>> source scene.**** >>>>>>>>>> >>>>>>>>>> ** ** >>>>>>>>>> >>>>>>>>>> On Wed, Jul 10, 2013 at 7:41 PM, Raffaele Fragapane < >>>>>>>>>> raffsxsil...@googlemail.com> wrote:**** >>>>>>>>>> >>>>>>>>>> Units and scale, and how they correlate, are extremely important >>>>>>>>>> even in a light weight, portable format. Actually, probably more so >>>>>>>>>> in one >>>>>>>>>> than in a more complex scenario.**** >>>>>>>>>> >>>>>>>>>> You can't assume people will not care about those because their >>>>>>>>>> workflow will be independent of it like yours was for a few example >>>>>>>>>> productions, because very frequently they won't have the choice.* >>>>>>>>>> *** >>>>>>>>>> >>>>>>>>>> As an interop format that deals with external contributions >>>>>>>>>> (rendering engines and so on being heavily dependent on it) you WILL >>>>>>>>>> bump >>>>>>>>>> into scale factors whether you like it or not, and the format will be >>>>>>>>>> rendered useless by not having control over those when it'll happen. >>>>>>>>>> **** >>>>>>>>>> >>>>>>>>>> There are things one omits or includes for the sake of forecfully >>>>>>>>>> encouraging good practices, those are practical-philosophical >>>>>>>>>> choices and >>>>>>>>>> are fine, and best made by a benevolent dictator for the project >>>>>>>>>> (any half >>>>>>>>>> decent programming language out there has craptons of those, and >>>>>>>>>> they are >>>>>>>>>> important to give languages and format identity and coherence). >>>>>>>>>> Scaling and units are not one of those, they are a fundamental >>>>>>>>>> requirement implicit to what you set off to describe with these >>>>>>>>>> files. >>>>>>>>>> **** >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> **** >>>>>>>>>> >>>>>>>>>> ** ** >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> **** >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Our users will know fear and cower before our software! Ship it! >>>>>>>>>> Ship it and let them flee like the dogs they are!**** >>>>>>>>>> >>>>>>>>>> ** ** >>>>>>>>>> >>>>>>>>>> -- **** >>>>>>>>>> >>>>>>>>>> ** ** >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> -Gene >>>>>>>>> www.genecrucean.com >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Our users will know fear and cower before our software! Ship it! >>>>>>>> Ship it and let them flee like the dogs they are! >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> -Gene >>>>>> www.genecrucean.com >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> -Gene >>>>> www.genecrucean.com >>>>> >>>> >>>> >>> >> > > > -- > -Gene > www.genecrucean.com >