Procedural geometry in MoI (WIP)
 1-11  12-31  32-48

Previous
Next
 From:  DannyT (DANTAS)
2922.12 In reply to 2922.1 
Hi Dave,

Great work you're doing there, I have one question, bear with me as I haven't done any programming since college and that was the 'BASIC' programming language.

Just to get this in it's basic form, correct me if I'm wrong, you write a script and you execute it to produce an object in MoI, if that's the case can it work in reverse, where if we model something can it 'record' what you've done in script form so we can make a sort of macro for repetitive tasks, or is that a completely different thing altogether ?

Cheers
~Danny~
  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:  BurrMan
2922.13 In reply to 2922.12 
I think thats where he would want the abilty to tie into MoI's Com interface. Thats later...Maybe.
  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:  NightCabbage
2922.14 
This is great, Dave :)

Very good idea, and will be an invaluable tool to any advanced MoI user.
  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:  Dave Morrill (DMORRILL)
2922.15 In reply to 2922.7 
> What about a procedural nodal interface ? :)

Interesting question. With what's there today, it would not be easily doable. But I have some things in mind for future work that could change that picture quite a bit. We'll just have to see what evolves...

- Dave Morrill
  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:  Dave Morrill (DMORRILL)
2922.16 In reply to 2922.11 
> My first thought was to make a solid ring and another solid object in the shape of the hammer head
> (basically just an egg-shaped solid). Then boolean diff the hammer in lots of random spots around the ring.

> A procedure could make short work of that.

It would, but it might require a lot of analytic math to correctly position the "hammer" before each "blow". I haven't delved into every nook and cranny of the Javascript API yet enough to know if those kinds of interfaces are being exposed in the API. If not, then a PhD in Math is going to come in might handy in addition to some Javascript programming chops ;-)

- Dave Morrill
  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:  Dave Morrill (DMORRILL)
2922.17 In reply to 2922.12 
> Just to get this in it's basic form, correct me if I'm wrong, you write a script and you
> execute it to produce an object in MoI, if that's the case can it work in reverse, where
> if we model something can it 'record' what you've done in script form so we can make a
> sort of macro for repetitive tasks, or is that a completely different thing altogether ?

It's probably doable, but would almost certainly require instrumenting all of the current MoI interface code to "capture" the necessary information. It's probably not something a 3rd party would want to attempt, since its effect would be so widespread within the MoI UI files...

- Dave Morrill
  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
2922.18 In reply to 2922.17 
Hi Dave - re: instrumenting UI to capture/record stuff.

Actually there is one kind of recording mechanism already in place, which is used by MoI's current history function.

When a geometry factory produces its objects, the factory name and all of its inputs are converted to a chunk of text and stored on the output objects. This is what is then used during history updates, like when you do an Loft for example and then edit the curves that were inputs into the Loft and then the Loft updates.

That kind of recording is happening all the time when you just do any modeling in MoI.


So there's kind of one ingredient of that in place, but that does not really mean that it would be at all easy to make a macro recorder though, it would probably need to have some additional stuff for reconstituting factories and analyzing inputs on history data and stuff like that set up.

There are plenty of other confusing issues involving recording macros, like when you select an object while the macro is running, do you intend for that particular object to be used when the macro is replayed (say as a cutting object in a boolean), or would you want to be able to pick objects to use at that point, stuff like that. There's probably enough issues that it would be more properly part of a larger and deeper history mechanism that had various mechanisms set up for modifying parameters on a sequence of operations.

- 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:  Dave Morrill (DMORRILL)
2922.19 In reply to 2922.18 
> Actually there is one kind of recording mechanism already in place, which is
> used by MoI's current history function.

> When a geometry factory produces its objects, the factory name and all of
> its inputs are converted to a chunk of text and stored on the output objects.
> This is what is then used during history updates, like when you do an Loft for
> example and then edit the curves that were inputs into the Loft and then the
> Loft updates.

> That kind of recording is happening all the time when you just do any modeling in MoI.

OK, that's really good stuff to know. Thanks!

> So there's kind of one ingredient of that in place, but that does not really mean that
> it would be at all easy to make a macro recorder though, it would probably need to
> have some additional stuff for reconstituting factories and analyzing inputs on history data
> and stuff like that set up.

Sure, but as long as the information is available through the API, the problem moves from being "impractical" to "doable", which at least means it is still worth thinking about.

> There are plenty of other confusing issues involving recording macros, like when you
> select an object while the macro is running, do you intend for that particular object to
> be used when the macro is replayed (say as a cutting object in a boolean), or would you
> want to be able to pick objects to use at that point, stuff like that. There's probably enough
> issues that it would be more properly part of a larger and deeper history mechanism that
> had various mechanisms set up for modifying parameters on a sequence of operations.

Maybe. But these issues always exist in every macro recording system I've seen. For simple tasks like "clone the current selection and move it +8 feet along the x-axis", then the recorder is just the ticket. For more complex tasks, the recorder is just the beginning.

Usually the user takes the output script from the recorder and tweaks it by hand to create a reusable, parameterized result. Having running code in front of them is usually a huge positive for a user. They can see how the steps they need to do translate into code, and from there it's usually not too big a leap for them to abstract out the parameters from the constants, or introduce loops, etc., provided they've got some guidance or examples about what needs to be done. We're all much better at "copy and paste" than we are at RTFM :-)

For example, as I recall, in XSI you don't have to explicitly record a macro. You just do something, then open up the command history and copy the last few lines worth of stuff you did into a new macro and start tweaking.

So, I'm sure it's still a fair amount of work to do, but I don't think a macro recorder facility has to handle everything itself. Just converting user actions to code is a huge first step...

- Dave Morrill
  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
2922.20 In reply to 2922.19 
Hi Dave,

> For example, as I recall, in XSI you don't have to explicitly
> record a macro. You just do something, then open up the
> command history and copy the last few lines worth of stuff
> you did into a new macro and start tweaking.

Yeah, something along those lines I think would be good.

That's kind of more what I was getting at when I was talking about a deeper history mechanism.

It would be nice if there was a way for you to switch on a "history view" that showed the sequence of operations that were used to generate the currently selected object.

Probably the main purpose of that would be so that you could alter some of the parameters that were used and have the object recalculated. But that could also be a good place to capture some steps as a macro as well.

If you were able to more visually edit different parameters with different UI controls for each one that kind of interface would probably be possibly usable by a wider set of people.

- 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:  DannyT (DANTAS)
2922.21 In reply to 2922.20 
Hi Michael and Dave,

> If you were able to more visually edit different
> parameters with different UI controls for each
> one that kind of interface would probably be
> possibly usable by a wider set of people.

Exactly!

This type of thing would be very powerful for all, I don't expect to record every click but to have the main operations in front of you in text form would be easier to tweak for the average user with a little programming experience.

-
~Danny~
  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:  Dave Morrill (DMORRILL)
2922.22 In reply to 2922.20 
> It would be nice if there was a way for you to switch on a "history view" that showed the
> sequence of operations that were used to generate the currently selected object.

> Probably the main purpose of that would be so that you could alter some of the parameters
> that were used and have the object recalculated. But that could also be a good place to capture
> some steps as a macro as well.

Sort of an "object" versus "session" history? This is more like the "modifier stack" that XSI and Max (among others) have I suspect. Since these can get very long and involved, I think most apps have a way to collapse/discard all or part of the stack to conserve time and space. It also tends not to be very selective and includes lots of stuff you probably never will want to modify.

> If you were able to more visually edit different parameters with different UI controls for each one
> that kind of interface would probably be possibly usable by a wider set of people.

That's the key, to identify those operations and parameters the user wants to modify and create a custom UI for that. Sounds like an interesting feature...

- Dave Morrill
  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:  rayman
2922.23 
If you remember Michael that was what i had in mind some time ago and discussed it with you.
A construction history that lets you adjust the final mesh by tweaking a few steps back..
That would be very cool .
I only know that Solid thinking has got something in that direction see the vide on tweaking a car
But Moi with its easy workflow would have a deep impact into that market if it had some of this feature
http://www.youtube.com/watch?v=hkrZdneJDz4
Peter
  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
2922.24 In reply to 2922.23 
Hi Peter,

> A construction history that lets you adjust the final
> mesh by tweaking a few steps back..

Yup, it's definitely been requested quite a few times.

You can actually do it to a certain extent in MoI already, like for example if you do a sweep, after the sweep is completed you can go back and edit the profile curves or rails and the sweep will update - that's construction history working right there.

But there are several operations that will currently break history, for example booleans or trimming.

So it is somewhat limited right now, but will still work for tweaking things soon after you have created them.

But it would be good to extend it to be deeper and continue to work through the kinds of operations that currently stop it.

- 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:  Michael Gibson
2922.25 In reply to 2922.22 
Hi Dave,

> Sort of an "object" versus "session" history?

Yeah, but I think there needs to be both of these kinds available.

A session history is what is used for basic undo/redo, which is certainly a very useful kind of history all by itself.


But for tweaking objects, you would probably not want to be forced to scroll through the entire session history to find the part that addressed one particular object.

- 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:  Dymaxion
2922.26 In reply to 2922.1 
This is wonderful, and something I've been meaning to dig into for a while now. I can't wait to dig through the docs.
  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)
2922.27 
cool you will be make this inside Moi !
http://paraclouding.com/WP/?page_id=460&album=1&gallery=16

PS This guy (Jotero) has yet made some astonished forms inside Moi Forum !

EDITED: 15 Sep 2009 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:  Dave Morrill (DMORRILL)
2922.28 
Here's another example:



BTW, these images are simply the results of tests I'm running while building up the procedural library. This is one that looked interesting, so I'm posting it...

- Dave Morrill
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:  TwinSnakes
2922.29 
Man...that is just too neat. Really nice functionality there.
  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
2922.30 In reply to 2922.28 
That's another cool one Dave, this method will be really great for making fractal shapes!

- 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:  Dave Morrill (DMORRILL)
2922.31 
A couple more tests...

Cubic Fur:



Stars and Stripes Forever:


- Dave Morrill

  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-11  12-31  32-48