Jump to content

Simple Cloner System (SCS)


javalang
 Share

Recommended Posts

Hi all,

I've implemented a basic-functionality of a cloner system and I'd like to hear your opinions and design/concept-suggestions for further develepment and finishing my work (if you're interested at all).

I decided to use a working title "SCS" for "Simple Cloning System" and here are the core features and concepts :

  • Cloners: given one or several meshes, either clones or instances will distributed in a specific manner. If more than one mesh is provided, the meshes are distributed alternatively. Additionally, cloners can be nested, so it is possible to clone cloners. Each cloner can have several Effectors (in particular order) to influence the Scale/Position/Rotation parameter of a clone (or cloner). A sensitivity parameter controls this influence for a cloner. Following Objects are designated:
  • RadialCloner: radial distribution where following parameters are recognized: count, radius, offset, startangle, endangle, Effector-sensitivity for Position, Scale and Rotation, alignment-flag, orientation.
  • LinearCloner: linear distribution where following parameters are recognized:count, offset, growth, Effector-sensitivity for Position, Scale and Rotation. An interpolation-mode-flag  determines, if the clone -parameters (Scale/Position/Rotation) are interpreted as "step" or "end"-values.
  • MatrixCloner: coming soon (clones will be distributed in  3D space)
  • PlanarCloner: coming soon (clones will be distributed in 2D space)
  • ObjectCloner: coming soon (clones will be distributed in relation to the internals of a given mesh (vertices, edges, triangles ...)
  • RandomEffector: influences Scale/Position/Rotation of a clone with repeatable random values, controlled with an overall "strength" parameter. Not quite finished, but basically working.
  • FormulaEffector: coming soon, influences Scale/Position/Rotation via text thought to control from outside (html-page).
  • StepEffector, TimeEcffector, DelayEffector and much more ???

So, enough for the moment, you can see and play with some scenes:

LinearCloner,RadialCloner,RandomEffector

radial-linear-radial-cloner

linear-radial-linear-cloner

PS: I need some advise if I should upload the sources to github if you're interested. Should I upload it to my own github space or to BABYLONX ? If the latter, do I have to send a pull request? Sources are written in typescript :)

screen1.jpg

screen2.jpg

screen3.jpg

screen4.jpg

Link to comment
Share on other sites

@meteoritool & @Deltakosh thank you.

Scene updated, now with animation flag, check "animate": Dancing Clones

To achieve this effect, only one parameter per cloner is nedded (sensitivity):

                cc.effectors[0].sensitivity=Math.sin(frame*.005)*Math.sin(frame*.005);
                rr.effectors[0].sensitivity=Math.cos(frame*.005)*Math.cos(frame*.005);

 

Link to comment
Share on other sites

Great work! Would love to see that as an extension so I could include it when needed.

Maybe you know the module 'MoGraph' from the 3D software 'Cinema4D'? This is pretty exactly the concept of your code. And it's very useful! Also a lot of fun.

An idea could be to distribute clones on vertices (or face-centers) of a mesh.

Link to comment
Share on other sites

@jellix thank you, haha yes MoGraph, you got it, I like it very much and you're right, I've tried to pack many of these concepts into here. The idea distributing the clones on the face-centers is exactly what the ObjectCloner does. One thing here however could be improved: a flag to align the clones on the face-normals, but this should not be a big problem.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...