• Hello Guest!

    We have recently updated our Site Policies regarding the use of Non Commercial content within Paid Content posts. Please read the new policy here.

    An offical announcement about this new policy can be read on our Discord.

    ~The VaMHub Moderation Team
  • Hello Guest!

    We posted an announcment regarding upcoming changes to Paid Content submissions.

    Please see this thread for more information.

Important Notice
Please ensure you download all dependencies for this app; failure to do so may cause the app to malfunction without any error message.

Example Use Video
Check out the video below to give you an impression of how the app works and is initialized.

App Overview
This upgrade from the VAM Character Fusion project offers numerous advanced features.

This app enables you to:
  • Scan all your appearances
  • Construct a blueprint of your preferred appearance style
  • Generate 20 appearance samples based on your blueprint
  • Vote on these appearances
  • Create a further 20 appearances based on your voting feedback
  • Repeat the process until you find an appearance that pleases you
Essentially, this is an app that refines your preferences in a 'hot or not' fashion.

Quick Start Guide
  1. Launch the VAM Evolutionary Character Creation app (Windows Executable)
  2. Navigate to Step 1 in the app, select your VAM Folder (the folder containing VAM.exe)
  3. In Step 2, select your Appearance directory
  4. In Step 3, choose a female (or male/futa) template from your Appearances directory
  5. Proceed to Step 4 and select "All appearances"
  6. In Step 6, select "Gaussian Samples" if you have 20 or more appearances from Step 4; for fewer appearances, select "Random Crossover"
  7. Click "Initialize Population"
  8. Open VAM and load the VAM Evolutionary Character Creation Companion save
  9. In VAM, click "Connect to App"
  10. Rate the corresponding 1-20 appearances in VAM
  11. Click "Generate Population" in VAM after all appearances have been rated
  12. Repeat steps 10 and 11 until satisfied with the generated appearances
  13. Save your favorite appearance to a new file.
Detailed Guide
Detailed instructions for usage can be found in the [Detailed Guide] below.
Step 1: Setting Up the App
Upon starting the application, click on the "Appearance Dir" button and navigate to your Virt-A-Mate directory (where your VAM.exe is located).

Step 2: Choose an Appearance Folder
Next, choose an Appearance folder by clicking on it. You have the flexibility to place this folder anywhere you desire. (You can typically find the Appearance folder here: C:\VaM\Custom\Atom\Person\Appearance)

Step 3: Select a Child Template Appearance
This step involves selecting a Child Template Appearance. This can be achieved by clicking on either the Female, Male, or Futa button and then selecting the corresponding Appearance you wish to use as a Child Template. The generated children will have the skin and look of this Appearance.

At this stage, you can use the "+ -" buttons to adjust the amount of thumbnails per row, and you can also employ a file filter for easier navigation.

Step 4: Choose the Source of the Parents
You have three options for this step:
  1. All Appearances: All appearances in the Appearance Dir matching the Child Template will be used as Parents.
  2. All Favorited Appearances: Only the favorited appearances in the Appearance Dir matching the Child Template will be used as Parents.
  3. Choose Files: You can manually select which appearances you want to use as parents, but ensure that you pick at least two parents.
Step 5: Verify the Available Parents
Refer to the information provided in Step 4 (in the app), and ensure that you have at least two appearances available as parents. If not, return to the previous step and make the necessary changes.

Step 6: Choose Your Initialization Method
You have two choices for this step:
  1. Gaussian Sample: This method finds the "mean" of all the files in your selection from Step 3, considering the correlations between all variables. Essentially, it attempts to capture the "mean flavor" of your appearances and then picks children randomly from this flavor pool. This initialization can take a while, particularly for the first generation, and requires a considerable amount of appearances (20+) to make a good estimate of the "mean".
  2. Random Crossover: This method randomly chooses two parents every time to create a child. It is faster but yields more variance in the created children. If you have fewer appearances/parents, this should be your go-to method.
Step 7: Optional Settings
There are several optional settings you can tweak, but it is strongly advised to set option B).
  1. Option A: Removing morphs below a certain threshold. This helps to "ignore" morphs with very low values. By setting a threshold, only the significant morphs with values larger than your threshold are retained.
  2. Option B: This app does not work well with appearances that store the entire character in one morph. To filter these out, it's recommended to set a minimum morph count of about 150 (this is the default setting). This ensures only appearances with more than 150 morphs are selected.
  3. Option C: This setting determines how many 'elite' (highest rated) appearances the app will retain from the old generation when generating a new one. It's generally best to keep this option below 3 to maintain genetic diversity.
  4. Option D: If you want the app to automatically scan subdirectories of your appearance folder for appearances as well, set this to Yes.
Step 8: Initialize Population
Press the "Initialize Population" button. If you're using Gaussian Samples, this process may take a minute or so.

Step 9: Connect to App
The app will now prompt you to open the "VAM Evolutionary Character Creation Companion" save. Open the save and click on "Connect to App". From this point forward, all tasks can be completed within VAM.

Step 10: Rate Children
Click on one of the 20 numbers on the left to view each of the appearances generated by the Python app. Rate each appearance on a scale of 1 to 5. The higher you rate each child, the more likely it will be used to create children for the next generation.

Step 11: Generate Next Population
Once you've completed the rating process, press the button labeled 'Generate Next Population'.

Step 12: Repeat Steps 10 and 11
You can repeat Steps 10 and 11 until you're happy with the results.

Step 13: Save Generated Child
Once you're satisfied with one of the generated children, ensure you save that appearance with a custom name. If you rerun the app, all children appearances will be overwritten, so it's best to save it under a new name.

Troubleshooting
If at any point the app malfunctions or behaves unexpectedly, delete "settings.json" from the data directory in the app folder to reset the app. Remember to reconfigure your preferences after doing so.

This app is designed to learn and adapt to your preferences over time, resulting in better and more tailored appearance suggestions the more you use it. Enjoy your journey towards finding your ideal virtual appearances!

Additional Features
The application offers a host of other features such as "Variate Population," "Use current Appearance as Template," "Reset," and "Quicksave Appearance." Refer to the [Additional Features Guide] below to learn more about them.
1. Variate Population
The "Variate Population" feature offers a unique way to diversify the appearance of your character models. This function scans all appearances in the Appearances directory and randomly selects 20 of them. These selected appearances are then used as templates for the current generation, providing an exciting way to explore how the morphs of the present generation would look when applied to different appearance templates.

2. Use Current Appearance as Template
This feature allows you to experiment with a new appearance while keeping the current generation's morphs. First, you need to load a new appearance for your character model. Once you've done this, clicking on the "Use Current Appearance as Template" button applies this new appearance as the template for all characters in the current generation.

A strategic way to utilize this feature is in conjunction with the "Variate Population" feature. Once you find an appearance you like while exploring variations, you can apply that preferred appearance to the entire generation with the click of a button.

3. Reset
At any point, if you want to start from scratch and experiment with a completely new gene pool, the "Reset" function is your go-to feature. When activated, this function resets the algorithm, rolling you back to the first generation. The initialization process is also restarted, and you get a fresh gene pool based on either a Gaussian Sample or Crossover method, depending on your original choices when launching the app.

This function allows you to restart the entire process without having to exit VAM or leave your VR environment.

4. Quicksave Appearance
Finding the perfect appearance can be a lengthy process, and you might want to save interesting appearances along the way. The "Quicksave Appearance" function facilitates this.

This feature allows you to quickly save the current appearance. The saved appearances are stored in the "Custom/Person/Appearances/VAM Evolutionary Character Creation/Quicksaves" folder as "Quicksave #", with # being a randomly generated number. Please note that these quicksaves will not have a thumbnail.

This function lets you easily store appearances you like during the generation and evaluation process, so you can revisit them later or compare them with other saved appearances.

Technical Details
The application was developed in Python and communicates with VAM via UIText atoms. Refer to the [Technical Details] below for more information on the development, communication, and rating process.
App Development
The Virt-A-Mate Evolutionary Character Creation application was developed using the Python programming language. The source code is publicly available on GitHub. You can access it at this URL: https://github.com/pinosante/VAM-Evolutionary-Character-Creation. If you see anything which can be improved, please let me know! I'm not a programmer by trade (as you can probably tell by looking at the source code :) ).

Communication between Python App and VAM
Communication between the Python application and Virt-A-Mate (VAM) is primarily achieved through UIText atoms. These atoms serve as a medium for conveying commands and data between the Python app and VAM.

One example of these UIText Atoms is "VAM2Python". This atom acts as a channel through which the Python application can read commands from VAM. This is accomplished by saving a preset for the UIText Atom with a specific command as the text. The Python app checks this "VAM2Python" file every 25 milliseconds for updates.

Similarly, the Python application writes to UIText Atom files that are subsequently read by VAM. Examples include a text file containing the generation number and the RatingBlocker atom, both of which are updated by the Python app to show the current progress.

Rating Process
The rating process for characters involves a system known as roulette wheel selection. After all characters have been rated, each character's rating gets assigned a proportional slice on a roulette wheel—the higher the rating, the larger the slice.

For instance, a character with a rating of 3 will have three times the chance of being chosen as a future parent compared to a character with a rating of 1. Once all slices have been assigned on the roulette wheel, the app spins this wheel each time a parent needs to be chosen.

This selection process is performed 40 times since each new child requires two parents. This mechanism ensures that the highest-rated characters are more often chosen as parents, resulting in the generation of children who closely resemble the highest-rated characters.

By using this roulette wheel selection system, the Python app effectively biases the creation of new characters towards those that have received higher ratings, influencing the characteristics of subsequent generations in a manner reflective of the user's preferences.

Futas Compatibility
The app accommodates futas based on the presence of the "MVR_G2Female" morph in the appearance file. More information can be found in the [Futas Compatibility Guide] below.
Defining Futas
In the context of this application, futas are identified based on the presence of a particular morph within the appearance file - specifically, the "MVR_G2Female" morph. This method of defining a futa is one of many but was chosen for the app due to its popularity and simplicity. An example of an appearance file adhering to this format can be found at this link among many others on the Virt-A-Mate hub.

Using Futas as Parents
When you choose a futa as a template, you are then able to select either females or other futas as parents. This opens up a wider array of possibilities for character creation, as you can draw from both futa and female parents to create unique character designs.

The reverse is also true: if you select a female template and there are futa files that you particularly like, you can use those as parents for your female template.

Parent Selection Support
The application's parent selection options ("All Appearances", "Favorited Appearances", and "Choose Files") all support the use of both female and futa parents. Regardless of whether you're working with a female or futa template, these options will display matching appearances, allowing for the combination of futa and female parent characteristics in your generated characters.

This compatibility with futas expands the possibilities for character creation, giving you more options and versatility when using the Virt-A-Mate Evolutionary Character Creation application.

Tips for Effective Use
  • Run the Python app before entering VR for the best results.
  • Set option B to a minimum value of 150 for optimal results.
  • To maintain diversity, rate only one among very similar looking children.
  • Rate characters with desirable features higher even if they possess some negative traits.
  • For quicker loading and easier rating, use a template appearance of a naked person.
  • If the app malfunctions, delete "settings.json" from the data directory in the app folder to reset the app.

Frequently Asked Questions
Queries related to the usage, compatibility, settings, and troubleshooting of the app are addressed in our [Frequently Asked Questions] section below.
Q1: Why am I not able to see all the appearances in my folder?
A1: Some appearances, particularly single-morph appearances, may not be visible in the app. Single-morph appearances have one morph that encompasses the entire character's look. Because the app works by adjusting many individual morphs, such as eye height, eye shape, hip shape, etc., these types of appearances aren't compatible. In the app, there is a setting (option B: Min Morph Count) that is set to 150 by default. This ensures that only appearance files with more than 150 morphs can be used.

Q2: Can single-morph characters be split into original morphs?
A2: Unfortunately, there isn't a way to convert single-morph characters back into the original morphs of VaM. However, as you experiment with the app and create your own characters, you can use those again, resulting in a wider variety of appearances.

Q3: How does the app work with Futas?
A3: Futas are defined in the app by checking if the "MVR_G2Female" morph is in the appearance file. If you choose a futa as a template, you can then select either females or other futas as parents. The same is true if you select a female template; you can use futa files as parents too.

Q4: Can I use the app in VR?
A4: Yes, this version of the app supports VR! Make sure you start the python app first, then enter VR, load the companion save, and "Connect to app."

Q5: How do I maintain a diverse gene pool?
A5: If you notice very similar-looking children, only rate one of them and keep the other at 1. This strategy helps maintain a diverse gene pool.

Q6: What strategy should I use for rating in the early generations?
A6: In the first few generations, rate the unusual or broken characters at 1 and any reasonably normal appearances at 2, even if they're not attractive. This approach helps weed out problematic appearances.

Q7: What if an appearance has some good and some bad features?
A7: If a character has an unappealing face but good body or other features, consider still rating it a 2 or 3. This keeps those good features in the gene pool.

Q8: What should I do if the app doesn't work or stops working?
A8: If the app isn't working correctly, go to the data directory in the app folder and delete "settings.json." This action resets the app to its default state.

Q9: Can I use downloaded looks as a template for the app?
A9: Absolutely! If you find a look on the hub that you like but feel it's missing something, download it and use it as a template for this app.

Q10: Why does the application open one window, scan, then suddenly close?
A10: This issue often suggests an error with a .vap file. You can diagnose it by following these steps:
  1. Open a command window (cmd.exe) from the folder of "VAM Evolutionary Character Creation".
  2. Run "VAM Evolutionary Character Creation.exe" from the command window.
  3. Copy and paste the error messages (or the entire log) that appears.
Temporarily remove any files causing errors. An auto-skip feature for faulty files is on the to-do list for future updates, but for now, this workaround should help.

Q11: I'm new to VAM and confused about how to organize .VAR files for this tool. Do they all need to be in one folder?
Welcome to the VAM community! For this application, your appearances need to be in the following directory:

C:/YOUR_VAM/Custom/Atom/Person/Appearance

Here's the simplest way to achieve this:
  1. Load appearances (looks) you like from the hub and open the scene.
  2. Click on the model (girl or guy) and select 'Appearances' in the menu on your left hand side.
  3. Choose 'Save preset as' and assign your preferred name. This will automatically save the appearance preset to the correct folder.
You can start using the app as intended once you've saved around 10 appearances this way. Please note that many appearances are single-morphed (i.e., they only have a few morphs) and as such, the app won't show them when you start it. This tool works best with non-single morphed appearances like Mia, for instance.

Acknowledgements
Special thanks to Felka99, ypeckak/unnamedplugins, and ChrisPBacon for their invaluable assistance with testing, providing suggestions, code refactoring, and feature addition.

Share your creations
I'd love to see what you create with this app! Feel free to share screenshots or variables of the looks you've created. Your feedback and creations are my motivation.

Enjoy the app! Just to see what's possible, watch a 5x speed (old) video of the creation of a new look below.
Author
pinosante
Downloads
42,233
Views
63,619
First release
Last update
Rating
4.82 star(s) 45 ratings

More resources from pinosante

Click the links below to support the other creators whose content was used to make this resource!

Latest updates

  1. Complete rewrite of the post description + added FAQ

    I decided to let chatGPT help me rewrite the wall of text for this app. I like this new version...
  2. Critical fix, please download this latest version (!)

    Fixed bugs: - critical bug: forgot to add the new file error handler to another function call...
  3. Minor quality of life fix for people with missing uid keyerrors: now also shows filename

    For those of you who have some appearance files which generate errors due to some missing stuff...

Latest reviews

thanks you!
pinosante
pinosante
Glad you like it!
Upvote 0
Excellent work! I created so many models with your app:)
pinosante
pinosante
Awesome, glad to hear!
Upvote 0
I have been with VAM for several years now. I followed the instructions over and over again line by line. I am NOT using the steam version. I have the latest VAM update. When I open the app in VAM and click on Connect to App it keeps saying Please Click Connect to App When Ready... Be really nice if I cold actually get it to work. I have been able to connect a lot of apps to VAM over the years but this one is a head scratcher.
Upvote 0
Thank you, the results from the generation are very unique, very coherent, interesting, and fun! And.. sexy!
pinosante
pinosante
Thank you so much! Great to hear!
Upvote 0
5
Upvote 0
I used this tool to combine all my favorite morphs together and the result is amazing!
pinosante
pinosante
Thanks, I'm really glad you enjoyed it!
Upvote 0
This is the best morph 'randomizer' I've seen. I'm surprised how well it works. After just 4 generations, magic is already happening!
pinosante
pinosante
Thanks for your kind words! Glad you enjoy it :).
Upvote 0
im waited for new ver.thx a lot,
Upvote 0
i still dont understand how it work but its get done
pinosante
pinosante
That's great feedback :) as long as it works for you I'm happy :).
Upvote 0
Crazy!!
pinosante
pinosante
I know right? :)
Upvote 0
Back
Top Bottom