How to automate creating something like this?
 1-20  21-26

Next
 From:  chippwalters
8088.1 
Anyone have an idea on how to algorithmically create this model (or one like it) from a bitmap (or vector image)?

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
8088.2 In reply to 8088.1 
Hi Chipp, well if you have a grid of boxes you can get the randomized leveling effect by using the randomize plugin from here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=5416.24

The tricky part will be separating the boxes into 2 sets so you can apply different scale factors to the ones contained inside the text outline. I've just had an idea that may work for that, I'll try a proof of concept.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  chippwalters
8088.3 In reply to 8088.2 
Thanks Michael for your contemplation!
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
8088.4 
@ Chipp
I give you 5 (or more) different solutions for SketchUp! ;)
http://sketchucation.com/forums/viewtopic.php?f=15&t=65765&p=603173#p603173

EDITED: 10 Sep 2016 by PILOU

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
8088.5 In reply to 8088.3 
Hi Chipp, proof of concept worked, the result script is attached here as SelectIntersected.zip. To install it please refer to FAQ #1, How do I install a plug-in script?.

The script expects for you to have set up a grid of solids (can be any shapes, you'll want boxes I guess for your particular case, set this up by drawing one box and then using Transform > Array > Grid to repeat it), and then some closed 2D curves for the text, like this:



Then when you run the new SelectIntersected command, it will select all solids that either touched the 2D outline or were contained inside of it like this:


Or as seen from the Top view:



Since the selection will get anything even just slightly touching the curves it will expand quite a bit so I'd guess a bit slender and spaced text to start with would help keep the text a bit more recognizable, or bumping up the density of the grid too.

The script performs a boolean operation as part of how it works so it will take like 10 seconds or so to run, or longer with higher density grids.

I hope this helps! I've tried to do something similar before without success but just happened to have a good idea this time! :) Later I'll see if it's possible to do a 'strictly contained inside' variant.

Once you have the grid broken apart into 2 sets you can then scale up the inside set so it's taller and then maybe apply some random z movement to everything all in one go.

If it works out I'd love to see what your result looks like!

- Michael


EDIT: see here for a more generalized version that works on both curves and solids:
http://moi3d.com/forum/index.php?webtag=MOI&msg=11230.5
The one here only works on solids.

EDITED: 23 Oct 2023 by MICHAEL GIBSON


  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
8088.6 In reply to 8088.1 
There will be a few cleanups that I'll do later tonight like if any curves are selected I'll just use those curves instead of all curves and not use any hidden objects.

But for the moment just use it with a fresh model that only contains the solids and the curves since the first version will just process anything in the model including hidden things.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  chippwalters
8088.7 
Great!

I'll check it out and post some pics after I return from dinner. Thanks!!!
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
8088.8 In reply to 8088.7 
One of my method with Sketchup! http://sketchucation.com/forums/viewtopic.php?f=15&t=65765&p=603178#p603178
Ground will be trivial ;)
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  chippwalters
8088.9 In reply to 8088.8 
Thanks Frenchy!

Michael, been working on this for awhile now, and things do work BUT it's amazing how SLOW the Randomize routine is. Is there anyway to speed it up? I tried it on my i5 Mac Mini and it was slow, so I took it to my monster 16-core HotRod PC thinking it would speed things up, but the Randomize routine is as slow there as on the Mac.

A grid of 100 x 60 boxes takes a good 60 minutes plus to randomize. Perhaps the redraw is the problem? If so, can we get an option to turn it off?

I'll post some images soon-- and if time permits a video tutorial.

Thanks again!!!

EDITED: 10 Sep 2016 by CHIPPWALTERS

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
8088.10 In reply to 8088.9 
Hi Chipp, try the attached updated version of Randomize and see if it is better.

This version has all the code moved to the .htm file so it runs in the main thread instead of doing a lot of interprocess communication which is what slowed down the original version.

In MoI v4 I've changed things so the code in the .js file will run on the main thread automatically instead of running out of process, which will speed it up a lot for chatty stuff like this but also make it more difficult to interrupt an ongoing script process.

- Michael
Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  chippwalters
8088.11 
Thanks for the script, Michael. I'll check it out first thing.
Here's a HUGE MoI3D model I created-- had to export it in parts. Turned out OK, but it's laborious mostly because of the memory issues. I suspect once v4 gets here, I can export the whole thing at once.

CLICK FOR LARGER IMAGE

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
8088.12 
Now animation by vertical movement of each "cube" for marvelous effect! ;)
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  dinos
8088.13 
I did something similar about 4 years ago for a project that wend nowhere. The data where read from a heightmap image, scaled to the correct size, and imported into Moi by a script.

Cant find that script right now, but even if i could it was nothing more than a quick hack so not really useful for anyone but me.


Dinos

Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
8088.14 
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  chippwalters
8088.15 In reply to 8088.13 
dinos,

Wow, that's cool. What is the purpose of the back end stuff? Is this supposed to be some sort of socket plug in component? Thanks for sharing :-)
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  chippwalters
8088.16 
Hi Michael,

Checked out your Randomize Script.

Created an array of 10mm cubes 30 x 30 = 900 cubes in all. Set it to randomize height only between 5-10mm.

Tested on my Mac Mini i5 (not terribly fast). Older version took just over 75 seconds.

New version < 1 second. Not bad for optimization :-)
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
8088.17 
For the fun! ;)


---
Pilou
Is beautiful that please without concept!
My Gallery
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  chippwalters
8088.18 In reply to 8088.17 
Thanks Frenchy.. Didn't know JPP had a random feature. Interesting!
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
8088.19 In reply to 8088.11 
Hi Chipp, that turned out great!

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  dinos
8088.20 In reply to 8088.15 
Thanks Chipp!

This was really just a fun project, a sort of an 8bit version of the classic Pin Art Game :-)
Here is a photo of the physical, 3D printed version.

Pilou, this was done a few years before Max's script.
The principle is the same though, and it would be relatively easy to modify Max's script to perform a similar job to my lost script.

Dinos

Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All

 

 
Show messages:  1-20  21-26