[req]Model Scrambler
-
I'd say password protection would be best. I know that there are ways to fix "messed up" models, but a password would be foolproof.
-
Ahh nice, that saves about 20 lines of code I find I'm not very concise in my coding. I use a lot of lines to get stuff done. But its easier for me to read later when I'm checking over my code.
-
Ok!
I test our codes, and yours is really, really faster than mine!!
100 times faster than mine...
IMO yours is faster because you don't enter into components to find sub components. You stay in model.
Great test! Thank you Chris! -
FWIW, if you really don't want them to get their hands on your model, then you need to convert the model to another form which simply does not contain the primary content (so it cant be recovered).
So, perhaps convert it into a movie, an interactive sequence of images of the model rotated (a la 3dwarehouse) , etc etc.
Adding degenerates / zero-area geometry / component-per-face simply degrades their experience of your work.. which probably isn't good for business!
Adam
-
@unknownuser said:
Who are 'they' that 'they' can demand this model from ? If they 'own it', or have a claim on it in some way, you must give it to them - otherwise they can sue you... You should only ever agree to provide images unless they specifically are paying for the 3D model...
This is a good point. If you are being paid purely as a visualiser, there should be no need to give them the model. But now I find some clients do know a little Sketchup or are interested in it, so they sometimes ask for the models because they are interested in seeing if they can learn from it. I think that is fair enough - if they have paid in full first.
@unknownuser said:
So, perhaps convert it into a movie, an interactive sequence of images of the model rotated (a la 3dwarehouse) , etc etc.
I agree, I think this is always preferable and much sleeker than giving a client the raw file.
-
Hi chris!
Just one thing with your piece of code: To explode all components.groups I do like that:l=[] Sketchup.active_model.definitions.each{|e|l=l+e.instances} l.each{|elt|elt.explode}
-
You could:
- Use Chris Fullmer's random scale and rotate to mess everything up with only really tiny rotations (no scaling)
- Explode everything afterwards (how about using smustard's "bomb"?)
- Random push-pull everything with tiny values. I guess you could use Chris Fullmer's greeble script for this.
- Select everything and use TIG's random select to select a random 20% of everything and copy it (Ctrl+C)
- Select everything remaining, make it a group, paste in place what you copied before, make it another group, and
- Use Chris Fullmer's random scale and rotate again with really tiny rotations (no scaling) to mess up everything
- Again, explode everything
Be prepared to be declared a slobbish 3D modeler after they try to edit that file.
-
Make a script that randomly bugsplats the Su file when someone wants to edit it.....
Oh wait a minute, Sketchup does that by default.... -
@kwistenbiebel said:
Make a script that randomly bugsplats the Su file when someone wants to edit it.....
Oh wait a minute, Sketchup does that by default....Many a true word spoken in jest... the tool put everything onto Layer0 and explodes everything to bare geometry, the tool then groups the whole model into one giant group/compo, we do 'something' to the group that causes a bugsplat if you try to edit it - otherwise the model remains orbitable, viewable etc...
Good candidates for 'something' would be some humongous hidden geometry causing GL to fall over, or a definition that includes itself ?
-
@remus said:
I was wondering if it would be possible to make a script that:
- Exploded all groups/components in the model
- Purged the model
- Exploded all curves
- Unhid/unsmooth all geometry
- Hid a random selections of lines
- Rotated the whole model very slightly off axis in every direction
- Created lots of new layers and moved random pieces of geometry to the new layers
- Made components of random selections of geometry
And anything else that you can think of that would make it very hard/impossible to work on the file.
Sounds like some the architects where I work... ...with exception of point 2.
-
As some has said, I dont think giving the client a crippled SU file would be good for business.
Either give them a movie or still images. The good thing about that is that you can deside what they should be looking at. With just the SU file they could start commenting irrelevant things that you quickly fly past in an animation.
Also many clients (at least where I live) are not very good with computers and they would either loose themselves trying to navigate SU or just be getting a less experience of your work navigating SU themselves. -
@solo said:
How difficult would it be to make a script that renders the model uneditable?, making it a locked component that cannot be unlocked without a password?
Don't think that's possible, since it probably needs a .rb file to work [password data]. You could ask the receiving party to first install the .rb and then open the model and hope they fall for that
-
Is it possible for a ruby to go in and tweak something in the .skp file that makes it appear un-openable to SU? But the ruby could be installed on another computer and the user could start the ruby, then select a file to open and the ruby could then re-tweak the file back to normal if the correct PW was given? the PW would also be stored in the .skp file.
Is that possible?
-
Another possibility: the ruby performs a series of transformations to mess up the model but records all the transformations. You then put in a password and it magically undoes all the transformations to give you a working model. (i'd guess this is easier said than done, though.)
-
One last idea: you type in a password and the ruby works out a transformation based on the password. You then type the password in at the other end, the ruby script works out what transformation was performed and does it in reverse.
-
Model Scrambler you could also have it run in an endless cycle to arrange models randomly (evolve); evolve based on a basic floor plan layout, volume, materials, components. For when your having one of those dysfunctional modelling days.
-
I think this is all do-able and I've got some ideas....
Chris
-
I' liking this so far. I really need to fix the bug where its not scrambling everything in one try...thats annoying.
Guess what this one is...
password is 'remus'
Chris
-
Proof of Concept
Here is a ruby that begins to do some of this. Its incredibly crude right now. DO NOT run it on a model that is more than a few undered faces. It will not work on groups or components, or loose edges. Just plain geometry.
Obvious major problems in this test.
- Everything is stored in plain text in the model. Anyone with some ruby background could find it all and probably figure out how to rebuild the model. I would hope there is a way to encode the text so it is not so easy to read.
- There needs to be a way for the plugin to encode and decode what the user types. Otherwiser it would be easy to just find the text string in the ruby console and then copy and paste it into the PW entry box.
- It would be possible to strip the model of all info if the PW was entered incorrectly after a few tries. That is currently not implemented though.
- Its super slow. I think moving and rotating every face might be overkill. Perhaps it needs to be done in chunks of faces for speed issues. Or maybe give a few different settings for the amount of faces to be grouped together and moved around
- It does not work on groups/components, but I'm sure it could. It could deform everything inside each groupd, then relocate each group too. That could all be unscrambled.
I've attached a scrambled model and the script. Install the script. Then open the provided model. Run Plugins>Chris Fullmer Tools> Unscramble Model and watch the beauty of it!
You can also make any geomtery you want (again, not too much or it will take hours!). Run the Set Password first to set a PW for the model. THen run the scrambler. It will scramble the model (well, about 65% of it, see the known bug listed above). Then you can unscramble it with the unscramble method.
Can you guess what this is?
This has potential,
Chris
PS: I forgot to mention the PW for the supplied model is 'chris' with no quotes.
-
It seems you are on to something. I guess you would have to have the ruby installed on the recipients computer in order to unlock the file. It would be nice if the file was able to be orbited and viewed, but as soon as a tool is chosen, then a password prompt would pop up. If the wrong password is entered three times in a row, the model will automatically scramble, or just continue to lock the edit tools.
Advertisement