Jump to content


LDD openness, interoperability, reverse-engineering


  • Please log in to reply
23 replies to this topic

#1 Florimel

Florimel

    Posts: 8
    Joined: 30-October 11
    Member: 21230
    Country: France

Posted 21 January 2012 - 12:23 AM

I've seen several threads on this forum and others asking for LDD export capabilities to standard formats, and generally speaking for a better interoperability between LDD and other softwares.

I know that LDD's EULA forbids reverse-engineering but "except to the extent that this restriction is expressly prohibited by law".
And indeed (according to wikipedia's article on reverse-engineering) both US and EU laws explicitely "allows reverse engineering for the purposes of interoperability".

I've been able to reverse engineer the assets.lif archive file format and the .g binary file entries inside this archive (containing the geometry definition of the bricks).
I have also prototyped a very simple .lxf 3d viewer that uses assets.lif content in order to render LDD models on screen.

Posted Image

To which extend do you think that I can share the results of this work with the community?

#2 hrontos

hrontos

    Posts: 726
    Joined: 05-August 11
    Member: 19500
    Country: Slovakia

Posted 21 January 2012 - 01:00 AM

View PostFlorimel, on 21 January 2012 - 12:23 AM, said:


I know that LDD's EULA forbids reverse-engineering but "except to the extent that this restriction is expressly prohibited by law".
And indeed (according to wikipedia's article on reverse-engineering) both US and EU laws explicitely "allows reverse engineering for the purposes of interoperability".


I am not lawyer, but "allows reverse engineering for the purposes of interoperability" means, that you can reverse engineer for example Word to understand the doc format and to be able to read it or write. So you can reverse engineer LDD to understand LXF format or to be able to produce your own LXF files. Or if you are good, you can create LDD compatible bricks geometries.

"Allows reverse engineering for the purposes of interoperability" does not give you right to use existing brick geometries from the LXF files for any purpose without approval of the TLG, since they are intelectual property of the TLG.

Edited by hrontos, 21 January 2012 - 01:00 AM.


#3 Lalror

Lalror

    Posts: 167
    Joined: 02-June 10
    Member: 11081

Posted 21 January 2012 - 02:27 AM

Legal issues set aside, I am very interested in your work.  It sounds like you have made some real progress in actually exporting bricks to other software, and I am quite interested.

P.S.  Make a few more posts so you can become a vassal so I can pm you.  :wink:

#4 jonwil

jonwil

    Posts: 3459
    Joined: 12-January 07
    Member: 1239

Posted 21 January 2012 - 04:08 AM

I cant see LEGO having a problem with this as long as you aren't deriving profit from it or misusing LEGO IP.
LEGO has given brick geometry data to the LDRAW project in the past and its clear from the files that they come from the same source as the LDD geometry.

#5 Superkalle

Superkalle

    Posts: 5789
    Joined: 21-December 08
    Member: 4755
    Country: Sweden

Posted 21 January 2012 - 12:49 PM

View Postjonwil, on 21 January 2012 - 04:08 AM, said:

I cant see LEGO having a problem with this as long as you aren't deriving profit from it or misusing LEGO IP.
LEGO has given brick geometry data to the LDRAW project in the past and its clear from the files that they come from the same source as the LDD geometry.
It was not TLG centrally that gave away the geometries. As I understand it was someone working within the LEGO Universe project at the time.

View PostFlorimel, on 21 January 2012 - 12:23 AM, said:

...both US and EU laws explicitely "allows reverse engineering for the purposes of interoperability".
I think the difference here is that if you write some export filter or so, for example for MS Word, that's no problem, because you are not reverse-engineering the content in any particular word file, just the "place holder" (the DOC-format). With LDD it's not the reverse engineering of the program that is the issue, or even the LXF-format (which is BTW allready public), but the brick geometries.

#6 Florimel

Florimel

    Posts: 8
    Joined: 30-October 11
    Member: 21230
    Country: France

Posted 21 January 2012 - 03:17 PM

Some methodologies were already available online, explaining how to extract LDD's geometry for the propose of interoperability, like this first method or this other tutorial.
They both rely on manual extraction of the 3D geometry displayed on screen using Dassault Systèmes' 3D PrintScreen tool, and varying amount of manual rework of the resulting 3DXML file before it can feed another application.

I found this overall process to be quite cumbersome indeed. And this is how I get motivated to do some reverse engineering of the native assets themselves, basically to achieve to same interoperability objectives, but in a much straight forward manner.

#7 Florimel

Florimel

    Posts: 8
    Joined: 30-October 11
    Member: 21230
    Country: France

Posted 21 January 2012 - 03:34 PM

View PostSuperkalle, on 21 January 2012 - 12:49 PM, said:

If you write some export filter [...] that's no problem, because you are not reverse-engineering the content in any particular [...] file, just the "place holder" (the [...] format).

So it means that, as long as I do not reference any specific .LIF file, or any specific .G file, if I focus only on those respective formats themselves (as opposed to the actual content of some specific files with those format), it's not a problem to document my findings, or to provide some convertors, right ?

Edited by Florimel, 21 January 2012 - 03:43 PM.


#8 Superkalle

Superkalle

    Posts: 5789
    Joined: 21-December 08
    Member: 4755
    Country: Sweden

Posted 21 January 2012 - 04:03 PM

View PostFlorimel, on 21 January 2012 - 03:34 PM, said:

So it means that, as long as I do not reference any specific .LIF file, or any specific .G file, if I focus only on those respective formats themselves (as opposed to the actual content of some specific files with those format), it's not a problem to document my findings, or to provide some converters, right ?
I don't know to be honest  :blush:
I'm just trying to analyze the difference between a program where you basically create something from scratch (word, excel, AutoCAD...the list is endless) with programs where you use predefined entities created by someone (like LDD, AutoCad libraries) and how the "allows reverse engineering for the purposes of interoperability" applies in these cases.

And yes, the method to do 3D printing is known, but just because it's known doesn't mean it's legal. At least that's how I've understood it, but I'm no expert.

All I'm saying is that we as a community have to think twice about this. We have so far had a really beneficial relationship with the LDD team. They gave us LU and Extended Mode even if they didn't have to (and actually had no incentive to), they give us bricks we wish for (even though unofficial) and they listen to our requests for new features (something I hope will increase now that DbM is out of the picture). And a few years back the provided some prices for contest we had then.

#9 AndyC

AndyC

    Posts: 1239
    Joined: 23-June 09
    Member: 6485

Posted 21 January 2012 - 04:23 PM

Techincally you're probably right about reverse engineering. However LDD is provided as something of a courtesy to the fan community (especially now DbM is dead) and it's very clear that TLG would prefer people not to do this (I suppose it could assist those in the clone brand business) and I think we have some duty to them to respect their wishes in this regard.
Posted Image

#10 jasonsmith

jasonsmith

    Posts: 80
    Joined: 29-May 11
    Member: 18116
    Country: Canada eh!

Posted 21 January 2012 - 06:46 PM

If my dream could come true it would be having LDD as a super Lego Cad program with all the features of all the current digital builders we have. The only way I see that happening is if there was a large contention of LDD users creating a heavy demand for such an upgrade to the product. That being said, if we start to use LDD as a tool to just export files for use in other digital builders we kinda reduce the demand and need for LDD to expand. Not sure if I'm making sense but I do think we need to be careful if we want LDD to grow.
My Illuminated UCS Falcon - http://www.eurobrick...dpost&p=1256070

#11 Florimel

Florimel

    Posts: 8
    Joined: 30-October 11
    Member: 21230
    Country: France

Posted 21 January 2012 - 09:06 PM

Thanks to all of you for your precious advices. Legal concerns are one thing, but I agree that ethics needs to be considered. This is primarily the reasons why I was seeking here for counsel.

Definitely, I wouldn't injure the good relationship that we are having with the LDD developement team. They are doing an outstanding job with their software and are providing a great service to our community of LEGO fans.

Long live LDD ! :classic:

Edited by Florimel, 22 January 2012 - 01:18 AM.


#12 Lalror

Lalror

    Posts: 167
    Joined: 02-June 10
    Member: 11081

Posted 22 January 2012 - 03:17 AM

On the contrary, I once asked the 3D manager at Lego about exporting from LDD to other, more popular, digital formats.  When he replied, he was very helpful and even said that he would ask his staff and see if there were any fan made solutions to the exporting issue.  With that in mind, I think its safe to say that lego is fine with us using there digital pieces as long as we are not using them for commercial purposes.

Legally, I don't know what the rules are in this situation, ethically, as long as I am not exploiting Lego in any way, I honestly don't feel that it's wrong, and practically if Lego's 3d staff doesn't mind, then I would say that its ok.

Edited by Lalror, 22 January 2012 - 03:18 AM.


#13 nemo

nemo

    Posts: 59
    Joined: 26-June 11
    Member: 18695

Posted 23 January 2012 - 01:53 PM

View PostFlorimel, on 21 January 2012 - 12:23 AM, said:

both US and EU laws explicitly "allows reverse engineering for the purposes of interoperability".
This is absolutely correct.

Quote

I've been able to reverse engineer the assets.lif archive file format
It’s irritating that a number of us have had to do this yet have been discouraged from publishing the results. In truth there is some ambiguous language in the statutes which implies that one CAN reverse engineer but CANNOT document the results... but:
  • I don’t think this stands scrutiny – “we can all look in the box but we can’t say what we saw” is just silly. It’s not an injunction, and even a signed NDA is irrelevant when all parties already know the information.
  • There is so much precedent for the publication of previously-proprietary file formats.
  • I really don’t believe for a moment that The Lego Group is going to sue anyone for documenting .lif or its contents.
Having said that, Lego need the flexibility to make breaking changes to the file format without having to document them so we shouldn’t expect them to ‘open’ it. But I think we can stop the cloak-and-dagger and creeping in shadows.

Quote

and the .g binary file entries inside this archive (containing the geometry definition of the bricks).
Excellent. That’s not something I’d looked at as I’m not familiar with 3D data formats.

Quote

I have also prototyped a very simple .lxf 3d viewer that uses assets.lif content in order to render LDD models on screen. [pic snipped]
To which extent do you think that I can share the results of this work with the community?
This is marvellous. Under US and UK law this is an interoperable program and you can do what you like, including publishing the source openly.

Thank you for taking the time to do this. :classic: That’s marvellous. I sincerely hope it can run on the limited resource machines which LDD is less-than-happy about and I’m looking forward to getting hold of a copy!

Skipping forward slightly – imagine a plugin that would allow .lxf files to be viewed and manipulated in 3D in the browser – there are a number of websites including this one that could benefit from such a thing!

BTW, documenting the file formats is one thing. Appropriating Lego’s data contained within such file formats is quite another – that data (the .lif contents) certainly is subject to plain old copyright. You would require written permission to reproduce it. Converting it to another format is merely a ‘derived work’ and permission is still required.

However, accessing the data in place (having installed LDD) and even modifying it are perfectly fine – just not distribution of it in whole or significant part. (And no, you can’t rip one brick out and say that’s “fair use”!)

Edited by nemo, 23 January 2012 - 01:59 PM.


#14 Calabar

Calabar

    Posts: 2378
    Joined: 11-April 10
    Member: 10232
    Country: Italy

Posted 23 January 2012 - 02:43 PM

View Postnemo, on 23 January 2012 - 01:53 PM, said:

It’s irritating that a number of us have had to do this yet have been discouraged from publishing the results. In truth there is some ambiguous language in the statutes which implies that one CAN reverse engineer but CANNOT document the results...
This "discouraging" politics is related to the good terms this forum is with TLG regarding the LDD support.
It seems TLG is not sure that share the techniques to disassemble parts of LDD is a good idea. So to maintain the aforecited "good terms" has been decided to avoid this kind of arguments here.
I don't think it is a "judicial world" related issue.

Did you try to contact TLG asking about what they thing about this argument? With a positive response, I don't think anyone here will remonstrate if someone will open a topic specific for this argument.
"Official LEGO Sets made in LDD" topic: Read guidelines before posting!

#15 hrontos

hrontos

    Posts: 726
    Joined: 05-August 11
    Member: 19500
    Country: Slovakia

Posted 23 January 2012 - 02:47 PM

I think, the point in this discussion is, if we want to stay only within legal boundaries or we would like to keep good relationship with TLG.

If we want to stay only legal, go on, publish your findings or source and on next day we can expect that TLG will change the format. It must be clear to any programmer, that without any siginficant effort they can add some simple on the fly encryption without making any big change to the format itself.

If we will try to keep also good relationship with TLG, we will ask them for permissions. You can probably create whatever application you want as long as you stay withing the boundaries defined by TLG. And from my point of view, this boundary starts by keeping the brick definition data unpublished.

So you if you want to create mobile version of LDD or some building instruction generator, model animation - these solutions does not necesarily require publishing the brick data and have big chance to be approved by TLG. Conversion to other 3D formats might be an issue, since it is hard to find a format which works in the way similar to LDD (model file without geometry and primitives library containing the geometry).

Edited by hrontos, 23 January 2012 - 02:49 PM.


#16 Lalror

Lalror

    Posts: 167
    Joined: 02-June 10
    Member: 11081

Posted 24 January 2012 - 03:07 AM

Has anyone even asked Lego if they mind.  It would be nice if someone like Superkalle could just contact lego over this matter.

#17 DLuders

DLuders

  • Technic Technician


    Posts: 5817
    Joined: 17-October 09
    Member: 7868
    Country: USA (WA State)

Posted 24 January 2012 - 03:07 PM

@ Lalror:  I don't think that it's fair to expect Superkalle to do this.  He already indicated that he did not want to upset the relationship with The Lego Group, so if you and Florimel want it, YOU contact TLG.  

I personally think this whole "reverse-engineering" thing is prohibited in the LDD License Agreement that you agreed to when you installed LDD 4.2.5.  Did you read it?

Edited by DLuders, 24 January 2012 - 03:08 PM.


#18 Lalror

Lalror

    Posts: 167
    Joined: 02-June 10
    Member: 11081

Posted 24 January 2012 - 04:10 PM

Sorry, I wasn't trying to say that its superkalles responsibility its just that the last time I contacted someone at lego over a Eurobricks matter, I was informed that Lego and Eurobricks people, talk on a regular basis and that things like this should be discussed through those contacts.  Also, how could asking a question damage the relationship between Lego and the EB forums?  If anything I think they would be glad that we asked their permission.

#19 Superkalle

Superkalle

    Posts: 5789
    Joined: 21-December 08
    Member: 4755
    Country: Sweden

Posted 24 January 2012 - 06:30 PM

View PostLalror, on 24 January 2012 - 04:10 PM, said:

Sorry, I wasn't trying to say that its superkalles responsibility
No worries on my part  :classic:

#20 nemo

nemo

    Posts: 59
    Joined: 26-June 11
    Member: 18695

Posted 25 January 2012 - 05:31 PM

View PostDLuders, on 24 January 2012 - 03:07 PM, said:

I personally think this whole "reverse-engineering" thing is prohibited in the LDD License Agreement that you agreed to when you installed LDD 4.2.5.
I couldn’t give a monkey’s what that says – it does not and can not circumvent US and EU law, and US and EU law specifically allow reverse-engineering for the purposes if inter-operability. If the LDD EULA said you could never drive your car more than 10kph do you REALLY think that would be legally binding just because you ran the program? Don’t be silly.

The whole basis of “you agreed to this by doing that” is ridiculous. In particular, and I don’t think this is widely understood, you haven’t broken the terms of your licence agreement just because the licensor (TLG) says so. Absolutely not! Only a judge can interpret the licence and render a judgement, not the licensor.

So the reality is the very worst that could happen is that TLG could decide to sue one of their customers for breach of the licence agreement and only through legal action force them to discontinue use of the software. This isn’t going to happen.

However, if someone legally reverse-engineers a file format (say) and documents that here, it is possible that TLG might pressure the forum into removal of the information on copyright grounds. Rather than argue that tenuous point any forum (and most site hosts) would simply remove the data. There is precedent for entire websites being deleted by hosting companies on the most implausible copyright ownership claims – hosting companies don’t care. This is why Eurobricks must be so careful.

But to return to the OP, I would encourage him to publish everything – code and documentation – on SourceForge, which is a much better place than this forum for such stuff.

#21 Calabar

Calabar

    Posts: 2378
    Joined: 11-April 10
    Member: 10232
    Country: Italy

Posted 25 January 2012 - 05:58 PM

View Postnemo, on 25 January 2012 - 05:31 PM, said:

So the reality is the very worst that could happen is that TLG could decide to sue one of their customers for breach of the licence agreement and only through legal action force them to discontinue use of the software. This isn’t going to happen.
I don't agree with that. The worst thing TLG can do is to "armour" LDD or even dismiss it.
LDD as we know it today, especially after the end of the DbM mode, is in part a gift to lego fans.

So the problem is not related to some phantom pressure that TLG can do over forum staff, but to the lost of the communication channel we have with the LDD staff.

That's why I think that who is really interested in the "reverse engineering" work should directly contact TLG asking informations about that. Querying the question in the right way, the answer could be surprisingly positive.  :wink:
"Official LEGO Sets made in LDD" topic: Read guidelines before posting!

#22 Lalror

Lalror

    Posts: 167
    Joined: 02-June 10
    Member: 11081

Posted 26 January 2012 - 01:31 AM

I am all for the development of this.  I am hearing a few extremes such as "If we break some hidden Lego copyright then they will be extremely offended and take LDD away."  This is simply not the case.  After talking with a few other members of the forums it seems as if a lot of this has already been done before, but for different reasons.  With all that in mind, I strongly ask that this tool be developed more.

#23 johanmark

johanmark

    Posts: 1
    Joined: 18-December 11
    Member: 23298

Posted 26 January 2012 - 04:35 PM

Personally I think that the more compatibility between LDD and Ldraw, the better for LDD, and the better for Ldraw, because the amount of parts in both programs will increase.

I am absolutely convinced that the existence of a new program which permits that compatibility is not a problem for the programmers of LDD.

Edited by johanmark, 26 January 2012 - 09:44 PM.


#24 Lalror

Lalror

    Posts: 167
    Joined: 02-June 10
    Member: 11081

Posted 27 January 2012 - 03:16 PM

The thing with LDD and LDraw is that the actual files are unusable with each other and need to be "converted" before they can be used by the other application.  e.g. When you export a LDD model to LDraw, if there are any parts that Ldraw doesn't have, they will be deleted, and the ones that Ldraw does have will replace the ones from LDD, and vise versa.  As I have not used Ldraw, I don't know that the UI is like, but to me, it seems that the only reason you would want to transfer files from one program to the other would be so that you can build easier.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users