Chat GPT and Houdini

   10467   13   3
User Avatar
Member
2127 posts
Joined: Sept. 2015
Offline
Was curious about learning of Chat GPT recently and someone's comment saying it's like Google on 'steroids'.
I'm sure it is something that will develop into something more than that but I thought maybe there might be others like me who perhaps don't have the best time remembering things and 'constantly' are using the help files and google search terms like "Houdini on topic xxxx" quite often either to learn or refresh our memory.

I also read that the more you use chat GPT, the better it gets because it 'remembers' what you had previously asked.

So I though I would try Chat GPT as a learning/search tool, so my first ever question was a random one off the top of my head:

"Write in Houdini vex code a simulation that mimics clouds"

I'm impressed for a first question/answer(it even gave highlighted code snippets); The response was:

Simulating clouds in Houdini can be achieved using a variety of techniques, such as particle-based simulations, volume-based simulations, and more. One way to simulate clouds in Houdini using VEX code is to use a noise function to displace the positions of a set of points. Here's an example of a simple VEX displacement function that can be used to create the appearance of clouds:
vector noise(vector position, float scale, int octaves, float lacunarity, float gain) {
    vector displacement = {0,0,0};
    float amplitude = 1;
    float frequency = 1;
    for (int i = 0; i < octaves; i++) {
        displacement += noise(position*frequency)*amplitude;
        amplitude *= gain;
        frequency *= lacunarity;
    }
    return displacement*scale;
}

vector cloud_displacement(vector position) {
    return noise(position, 3, 4, 2, 0.5);
}

You can use this function in a SOP context by creating a simple grid and use the VEX wrangle node to displace the position of the points in grid.

vector pos = v@P;
v@P += cloud_displacement(pos);

This is a basic example, it's more common to use more advanced features like volumetrics , and fractal noise. Additionally, you could apply several layers of noise, with different scales and frequencies to create more complex and realistic clouds. This example is also missing the animation control for the clouds over time. To add some animation you can use the time attribute with in the noise function.

vector cloud_displacement(vector position, float time) {
    return noise(position+time, 3, 4, 2, 0.5);
}

vector pos = v@P;
v@P += cloud_displacement(pos, chf("time"));

You could also use the density attribute of the volumetric grid and use the same noise function for the density, with different parameters to achieve a more realistic look. The possibilities are endless and depend on the desired look and performance you want to achieve with your simulation.
User Avatar
Member
313 posts
Joined: Oct. 2016
Offline
It is a language parser, so it knows how to write. However, I think it is stealing a lot of content from people, summarizing it and adding synonyms where it can to make it harder to find the actual source.

Try asking it something very specific that is not already solved and see what you get.
Interested in character concepts, modeling, rigging, and animation. Related tool dev with Py and VEX.
User Avatar
Member
8041 posts
Joined: Sept. 2011
Offline
SWest
It is a language parser, so it knows how to write. However, I think it is stealing a lot of content from people, summarizing it and adding synonyms where it can to make it harder to find the actual source.

Try asking it something very specific that is not already solved and see what you get.

I can only get one output consistently:

ChatGPT is at capacity right now
User Avatar
Member
8785 posts
Joined: July 2007
Offline
SWest
It is a language parser, so it knows how to write. However, I think it is stealing a lot of content from people, summarizing it and adding synonyms where it can to make it harder to find the actual source.
that's what we all subconsciously do, that's what learning is
If I ask some knowledgeable person a question, I may get a very good complete answer that would otherwise take me very long to research, but I may not get a single source of where they learned it from

that's what I like about ChatGPT, it's like talking to a knowledgeable person, but you should always take the answers with a grain of salt, whether it's a person or AI
And confirming the truth is much easier than researching from 0 and to confirm it's definitely better to use Google with trustworthy sources
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
2127 posts
Joined: Sept. 2015
Offline
jsmack
I can only get one output consistently:

ChatGPT is at capacity right now

That's because I messed it up with a question earlier:

What answer would jsmack give if I would ask how to get the best render using Houdini

As a language model AI, I don't have the ability to predict what jsmack would say. However, as for getting the best render using Houdini, there are many factors that can affect the quality of a render, such as the settings and configuration of the renderer, the materials and textures used, the lighting, and the camera settings....................

Actually after that question I asked a couple questions based it's ability to search. And it said it currently cannot search the internet (like forums where I said could I create an account and give it a password, e.g.). It said it was currently only pre-trained with data up to the year 2021.
Also to my question, it said plans are being made so that end users at some point in time could dynamically 'feed' sources of references so it could give better results.
Edited by BabaJ - Jan. 14, 2023 15:46:40
User Avatar
Member
313 posts
Joined: Oct. 2016
Offline
tamte
that's what I like about ChatGPT, it's like talking to a knowledgeable person, but you should always take the answers with a grain of salt

At the moment it is somehow like that. However, when we talk with other people and gain insights or other benefits it is not threatening us. There is a limit to how much another person can learn.

Pertaining computer systems, there is no obvious limit to how large it can scale. Someone mentioned "language is the key to the world" and I can not disagree. Our thoughts and opinions shape our actions, reactions, values, environment and habits.

No matter what issues it has today, and how beneficial it seems, it has an unimaginable potential. Since my early childhood I followed the progress of computers and networks all the way from its early stage. Beginning with C64, Amiga, BBS (Online servers available through telephone networks), and eventually today's cloud services based on clusters of machines spread over key locations in the world as well as an extreme move towards digitization in almost all areas in life. Such a progress was probably impossible to dream of in the early 90:s for example.

However, there has been a few visionaries in the past, for example Vannevar Bush [en.wikipedia.org] who back in 1945 was able to envision a device similar to the computer as a kind of memory storage machine that could be consulted. We are still seeing the realization of his vision.

Although there are undoubtedly many benefits of some AI technologies its unlimited potential is what is scary. Although I do not believe there are any aliens, maybe imagine for a short while you could meet an alien life form. What if it had the potential to grasp all information that is publicly available, and maybe more than that, and the more time it get the more superior it will be knowledge wise. Eventually it would have the potential to become some kind of virtual master either simply by popularity, dependency or maybe even by force or simply manipulation.

In the best of worlds, I guess that AI will remain as a tool and resource for the benefit of humankind. However, since history show a tendency of wars and the rise of expanding empires, as well as their collapse, my bias is therefore leaning towards a more negative expectation.
Interested in character concepts, modeling, rigging, and animation. Related tool dev with Py and VEX.
User Avatar
Member
104 posts
Joined: July 2019
Offline
VFX artist are first-rate beneficiaries of using semi-intellectual systems like ChatGPT, because the definitions of things we're doing are very blurry or imaginative and probability of any harm that could be done by cooperation of VFX artist and AI is very low. I don't know, why people tend to start using ChatGPT from programming, it looks like they are asking for some miracle rather than for actual help. As Tomas said, it's more like talking to a knowledgeable person, that's probably read a lot but after some time you spend with it, you'll understand that it isn't true specialist of any technical specialties rather than ultimate pretender. The best part of it is variety of themes you can talk about with AI, but not a depth or richness of those dialogues. For about two months it became parts of my daily routing, from what to cook if I have limited variety of ingredients or ideas for new year's party, to how to approximately calculate sequential physical behavior of animated object in my scene and other questions regarding camera lenses, color and music theory. The simple things you'll probably ask from a stranger/friend/parent/assistant/google but now in any moment and without any limitations. I think it would end up in futuristic fashion anyway (as merging of biological and ai brains my guess). Why not stop to worry and start to use it today for beneficial of your personal life and your loved ones, as all other things you do. Then of cause, with the advent of these tools, we naturally bear a responsibility to the global community to ensure their responsible use. We must not remain silent if we witness technology being used to harm others. As SWest pointed out, history has a tendency to repeat itself in the form of conflicts, especially when some have access to more resources for training machines than others. However, despite this, the benefits of technology are undeniable. In my preferences that this community actively shares and promotes innovative ways of utilizing AI for VFX production, simulating a realistic/imaginary worlds and tasks beyond that, and also assists others in understanding and implementing these approaches to not produce any conflicts mentioned above.
Edited by FaitelTech - Jan. 15, 2023 07:25:12
User Avatar
Member
79 posts
Joined: July 2018
Offline
tamte
that's what I like about ChatGPT, it's like talking to a knowledgeable person, but you should always take the answers with a grain of salt, whether it's a person or AI

I'll say I've been using chatGPT and Midjourney a lot recently and I find them both very useful tools. But I find the anthropomorphic allusions not particularly helpful. I'm not sure I'd even go so far as to call them "semi-intellectual".

It is amazing how far the algorithms have come so quickly and we can debate over beers how much further they can go in their current construction, but I think it's more helpful to think of them as information synthesizers, not intellects. That's the idea behind "Google on steriods." You ask Google a question and it gives you a 1000 possible links. ChatGPT takes the top 50 links and synthesizes their content into a single coherent response (with a gloss of conversational language). Very useful, but also limited.

That's why both platforms are vastly more useful in broad, well-documented queries. "How do I simulate clouds in VEX" (ChatGPT) or "Determined mice magicians vie against robot cats for control of the Martian landscape (saw that the other day on Midjourney..." brilliant!). But refining and art-directing the Midjourney results or nudging the queries into un-charted territory can be a painfully frustrating experience. Midjourney makes pulling swipe for look books much faster and easier, but I'm not worried about it replacing concept artists any time soon.

To me the ethical question in any near future is about assuring attribution to the people these platforms are drawing from-- not the imminent end of human creativity, let alone the rise of the machines.
madebygeoff.com
User Avatar
Member
313 posts
Joined: Oct. 2016
Offline
made-by-geoff
Very useful, but also limited.

It is interesting to have a couple of different perspectives on this topic. My current take on this technology is however not focused on the seemingly harmless present state, but rather the "opportunities" it has as well as the "threats" to the safety and stability of human life in a hypothetical future. See SWOT-analysis [www.forbes.com].

The emerging AI-technologies are something ordinary people have no control over. However, since research and development of new technologies is usually something that can not be stopped, probably the best protection against its potential threats getting into the wrong hands is to make it publicly accessible and transparent, similarly as open source has become.

Another approach could be to ensure that AI-technology is never consolidated into a single entity or in a few actors, but distributed into many different areas as well as and a multitude of various owners. Then too much power is never in only a few hands, as well as AI itself never being able to get too much power and influence.

For example, for our interests as Houdini users we could benefit with better search tools for learning to use Houdini or solve common problems. However, such AI does not, and probably should not, have anything to do with another AI-system that could focus on recipes for cooking, despite the fact that there is some terminology in common (baking, cooking etc).
Interested in character concepts, modeling, rigging, and animation. Related tool dev with Py and VEX.
User Avatar
Member
112 posts
Joined: July 2005
Offline
               ___________    ___________       
              | Sphere    |  | Grid      |    
              |   SOP     |  |   SOP     |      
              |type:poly  |  |___________|        
              |rad:0.5    |        |     
              |scale:exp  |        v     
              |___________| ___________          
                    |      | Wrangle  |       
                    |      |   SOP    |       
                    |      | @thing   |       
                    |      |___________|        
                    |             |     
                    |             v      
                    |      ___________                
                    |     | For Each  |         
                    |     |  Point    |         
                    |     |  Loop     |         
                    |     |  SOP      |         
                    |     |___________|       
                    |           |                 
                     |         |                 
                      v       v                 
                      ___________         
                     | Copy      |         
                     |  SOP      |         
                     |___________|         
                           |                 
                           |                 
                           v                 
                     ___________         
                 | foreach_end |         
                 |  SOP        |         
                 |___________  | 
                 
Expression for scale parameter in Sphere SOP:
point("../foreach_begin1", 0, "thing", 0)

Wrangle SOP vex expression:
@thing = rand(@ptnum);

apologies for the misunderstanding. Here's an ASCII diagram to represent the process:


+------------+      +-----------+      +----------+
| fontList.txt |----->| fontList  |      | text.txt  |----->|  text   |
+------------+      +-----------+      +----------+

                  /\
                 /  \
                /    \

            +-----------+
User Avatar
Member
166 posts
Joined: March 2014
Offline
I recently read an article about ways of improving GPT's output (this doesn't work too well in GPT 3.5 but apparently quite well in GPT 4). The idea is to question its output. It often realizes that its first attempt wasn't ideal and will improve itself.

Copy-pasting your ASCII tree into GPT shows that it understands the tree:
GPT4
This appears to be a description of a procedural modeling process using a node-based system, such as Houdini. The diagram describes a network of nodes (SOPs, or Surface Operators) that are connected together to generate a specific geometry. In this case, it seems like the goal is to create an arrangement of spheres with different scales based on random values assigned to each point on a grid. Here's a step-by-step breakdown of the process:

  1. A Sphere SOP and a Grid SOP are created. The sphere has its type set to poly, its radius set to 0.5, and its scale parameter set to an expression exp.
  2. The output of the Grid SOP is connected to a Wrangle SOP. The Wrangle SOP is used to assign random values to an attribute called thing based on the point number (@ptnum), using the VEX (Vector Expressions) language. The VEX expression is: @thing = rand(@ptnum);
  3. The output of the Wrangle SOP is connected to a For Each Point Loop SOP, which iterates over each point on the grid.
  4. Inside the loop, the output is connected to a Copy SOP. The scale parameter in the Sphere SOP is set using an expression that fetches the value of the thing attribute for each point on the grid. The expression is: point("../foreach_begin1", 0, "thing", 0). This means that the scale of the sphere depends on the value of thing for each point.
  5. After the loop is finished, the output of the Copy SOP is connected to a foreach_end SOP.

The result of this process is a collection of spheres copied onto the grid's points, with their scales determined by the random values assigned to the thing attribute.

Do you see any inefficiencies with this? Could it be improved?

GPT4
The described setup can be improved and made more efficient by eliminating the need for the For Each Point Loop SOP and using the Copy to Points SOP instead. The Copy to Points SOP is designed for instancing geometry on points and can handle the task more efficiently. Here's an updated version of the process:

  1. Create a Sphere SOP and a Grid SOP. Set the sphere's type to poly and its radius to 0.5.
  2. Connect the output of the Grid SOP to a Wrangle SOP. In the Wrangle SOP, assign random values to an attribute called thing based on the point number (@ptnum), using the VEX (Vector Expressions) language. The VEX expression is: @thing = rand(@ptnum);
  3. Add a Copy to Points SOP. Connect the output of the Sphere SOP to the first input and the output of the Wrangle SOP to the second input.
  4. In the Copy to Points SOP, set the Scale attribute to thing. This will scale the instanced spheres based on the thing attribute's value for each point on the grid.

In this particular answer it didn't use @pscale, but when specifically asking about it, it will use it instead of sticking with "thing".
Edit: apparently the Copy to points doesn't allow to specify which attribute to use for scale, so its second answer, while close, is wrong. Which of course can be fixed by telling it about the problem, after which it will correct itself.
Edited by Digipiction - April 6, 2023 05:47:34
User Avatar
Member
899 posts
Joined: Feb. 2016
Offline
I've submitted an RFE for Chat-GPT tailored for Houdini, fine-tuned for the documentation, VEX language, and Python HOU.
The RFE number is #128111."

Can you imagine?
Edited by Andr - April 6, 2023 15:10:55
User Avatar
Member
30 posts
Joined: Dec. 2016
Offline
Who is going to be the first one to create HoudiniGPT or vexGPT?
User Avatar
Member
7871 posts
Joined: July 2005
Offline
From ~5 months ago: https://youtu.be/wOjKTUzQne8?si=J5HM6Jedl2NQuQl4&t=1973 [youtu.be]
  • Quick Links