text:
How to render 3D scene along VSE's audio without deleting video strip?
This question is very specific to my workflow, so I'll start by describing it:
I animate a 3D character to match a line of dialogue, using a video of me acting the scene out for reference. First I import the audio clip in the VSE, then import my reference video and line it up with the audio, also in the VSE. I then split the viewport with a VSE preview half and a 3D viewport with my character in the other half. I animate the whole sequence, so far no problems.
Then I want to render it out to preview the result. And here's the problem:
Because there's a video strip in the VSE, it only renders my reference video (even if the strip is hidden).
I can disable the sequencer and that renders the 3D viewport, but then I don't have audio.
The only workaround I found is to delete the video strip, render, then undo. But if by mistake I forget to undo and go ahead with making adjustments to my animation, I then have to re-import my reference video and re-align it with the audio, which is a massive pain in the default cube.
Any ideas?

You can save a new version of the file, only for render without video strip.

I am just doing a full scene copy when I want to render, then deleting the reference video from the copy. Then rendering.
I will always know if I am putting work into the wrong scene because the reference video won't be up in the corner. So it is a strong enough visual indicator.
There should be a simple hide from render in the VSE for certain strips but I think this is an area that is still evolving. Just do a full copy delete and a render. Then just delete the full copy when you are done and keep making changes to the original.


text:
XYZ color space for Display Device
Why is there a choice for XYZ color space for display device in Blender?

So CIE 1931 XYZ color space exists and there is some information about it online like here. It seems to be an awesome color space that can define any color that is humanly possible to see (based on perceptions of 17 people observed by scientists of the year 1931) if I understand it correctly, but as far as I know, no display devices using it even exist. So why do we have it for display device in Blender?
Also, are there any good/common use cases for selecting it?
The question What is the difference between color models (sRGB, Rec709, XYZ, ets) and which cases I need to prefer one of them? touches the subject, however there does not seem to be a real answer about the purpose of XYZ color space as a choice for Display Device and its intended or possible use cases.

Maybe this helps? https://pasteboard.co/jesLOWrnlWIl.png take it with a grain of salt though.

Does this answer your question? What is the difference between color models (sRGB, Rec709, XYZ, ets) and which cases I need to prefer one of them?

@Emir The answers touch the subject, but this is a distinct question. I don't care much about it being closed, but would it be correct to close as a duplicate when it is a different question?.. It's specifically about XYZ color space and its purpose, not about what Display Device settings are for in general and the information provided there about this is vague and not really that specific. I have a feeling having XYZ is "hand-me-down hodgepodge" like Troy sais, but there must be more of an explanation about its existence... Wouldn't having a more in depth answer be nice to have on BSE?..

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

sort: votes


text:
How Do I Rig the Eyes and Tongue Properly So They Can Move?
I'm doing a Blender tutorial on rigging and am having trouble with rigging the eyebrows and the tongue. For some reason the eyebrows move strangely as part of the eyebrow moves but the rest stay still and the tongue's controllers aren't where the tongue is and so I cannot move the tongue like the way it is in the video. I tried weight painting them but nothing changes. If anybody could find out a solution I appreciate it. Thanks.
This is the tutorial I'm working on:
https://youtu.be/IOjH0eG43Ak?list=PLok698dKQ_Hj10eKx73qPJRktkB1r8SN5

hello please show a screenshot and share your file

I added two screenshots. You can see the controller in light blue for the tongue was moved, but doesn't make any changes to the tongue itself.

Hello and welcome. Please use a title that matches the content of the post. It should read like a question, be descriptive but succinct, unique and identifying, summarizing the problem so that anyone searching for similar issues is likely to find this. Remove anything superfluous, avoid using words like "this", "help with", "issue" or "question about", instead describe what "it" is. Remember, your title is the first thing visitors see, answers you get depend heavily on it. See What is the problem of asking “How do I do this?"

make sure that the tongue is assigned to the vertex group that has the name of the bone that is supposed to control it?

Currently the tongue is assigned to vertex group "Tongue". I also have vertex groups "ORG-Tongue" and "DEF-Tongue".  Is Tongue.001, 002 etc. the bones that control the tongue?

Please share your file (remove the useless parts): https://blend-exchange.com/

What parts should be removed? Should I just keep the head?

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Weight transfer just sets everything to 0.5 on a single bone
I'm trying to attach clothing to my rigged character. I'm doing what every guide has told me to do (start with empty groups on the clothing mesh, select the character mesh, select the clothing mesh, transfer weights, set the source layer to "by name"), but the mesh just moves in one big piece, uniformly attached to one single bone.
I've tried using the data transfer modifier. I've tried playing with the ray radius in the weight transfer. I've tried changing the vertex mapping options. I always either get the same result, or no result at all.
I'm using Blender 4.1
videos of the issue
.blend file

Can you share your Blender project file? Instructions for sharing.

@Jakemoyo Done. I hope google drive is alright

Hi. Is this the right blend file? There is no armature and the model has no weights/vertex groups at all.

@Blunder Really? I may have accidentally sent an earlier version. I've updated the link.

The only mesh that seems to have any blatant issue is waistcoar.003, but both using the data transfer or adding a simple data transfer modifier as you described does quite a good job already: https://i.imgur.com/IoUzL4D.png After that it's just a bit of touching up to fix small issues, but nothing like the issues you mention.

Perhaps try on Blender 4.2, it's been out for a few days, maybe it's an old bug that is now fixed. On a different note: I hope you know that the metarig object provided by rigify isn't meant to be the actual animation rig, it's a placement tool to generate the full feature rig. You will suffer in animation if you try using that metarig as is.

@Lauloque Oh, I know. I don't like rigify's rigs, but I use their ORG bones as a quick base point before manually adding my own controls

@Lauloque Would you look at that! Updating made it work! Thank you so much!


text:
What is wrong with my view?
So I'm having issues with my view.  When I try to zoom in, the view doesn't go through objects no matter how far I zoom toward my selection.  I have no idea what to try, nor what to ask to get hints (I am not versed in all the words on the screen yet), so do you have any suggestions?
Thank ~

Hello and welcome. Please use a title that matches the content of the post. It should read like a question, be descriptive but succinct, unique and identifying, summarizing the problem so that anyone searching for similar issues is likely to find this. Remove anything superfluous, avoid using words like "this", "help with", "issue" or "question about", instead describe what "it" is. Remember, your title is the first thing visitors see, answers you get depend heavily on it. See What is the problem of asking “How do I do this?"

Click the View tab down the R/H side of the 3D view and see how the Clip Start and End values are set. The defaults are 0.01 m  for Start and 1000 m for End. Try changing them and see if it helps.

Also try in Preferences > Navigation > Orbit & Pan > check Auto Depth.

Changing the clip start value seemed to work!  I'm not sure what Auto Depth changed, but it didn't seem to impact my experience yet.  Thanks for the suggestions either way!!


text:
How do I maintain Bezier circle resolution when selecting fill mode "none" for processing with Geometry Nodes?
I have some (2D) Bezier circles (with resolution > 1) that I am transforming into nice smooth objects with a GeoNode stack:

Fillet Curve (poly, as Bezier creates a ton more vertices and ruins the Bevel modifier)
Fill Curve (which is why I am asking about fill mode "none" on the curve itself; selecting n-gons again or it ruins the Bevel modifier)
Extrude Mesh (Faces, nothing interesting) + Transform geometry on a duplicate (to create a mirror image to get a shape that's closed on both sides)
Join Geometry + Set Material

...and that all is then followed up by a Bevel modifier (Edges mode, again, nothing interesting). Here is all that in image form:

Also, the curve itself:

Now the problem is that with Fill Mode "none" on the curve I get "vector-type handle" behavior, i.e., the curve as if it had resolution 1:

If I set fill mode to, say, "both", I get the resolution back, but now my GeoNodes fail (guessing because the filling creates a Mesh, which then can't be filleted etc.):

Why does selecting fill mode "none" ruin the resolution of my curve and what can I do about it? Also open to suggestions of how to rewrite the Geo Nodes instead, but this is the one way I have found works to get what I want...
Some things I've tried include the "Resample Curve" node that indeed gets me resolution back at the cost of a horrible number of vertices and great slowdown---but it also breaks the Bevel modifier for some reason.
EDIT: about this exact breakage of the Bevel modifier, it seems to very weirdly depend on the angles of the vector/free handles that are part of the curve:

(I only get this far by enabling "Limit Radius" in the Fillet Curve node, but it seems that is not enough...)
See this file for one of the actual curves I'm working with:

I don't really understand your issue, and I don't have any None option for the Shape > Fill Mode (it should be Full, Back, Front, Half). Also, without seeing your curve, geometry with the modifiers, ... helping you will be hard.

@Lutzi Fill Mode: none is available when you switch the curve from 3D to 2D.

I honestly can't understand what exactly you're trying to do here (it may be an XY problem), but your question about why Fillet Curve works so strangely here is easily explained:
Fillet Curve works with the individual points of a curve.
However, since you are using a Bézier circle as the base, and this only consists of a total of four points (the resolution describes the steps between these four points), you get a square after using Fillet Curve because the resolution between the points is lost.
To solve the problem, you would simply have to resample the Bézie curve beforehand.
Something like this:

(Blender 4.1.1+)

Update
It has now been clarified in the comments that the underlying geometry is somewhat more complicated in this specific case.
In this particular case, the Fillet Curve node causes the problem that all points of the curve are processed, which means that the bevel modifier no longer works correctly because the points at the end along the entire curve are too close together.
However, this problem can be solved in this use case by only passing a value for the radius to the Fillet Curve node if the angle between two points exceeds a certain value. In this way, for example, all right-angled corners can be rounded and all other points can remain unprocessed.
Something like this:

I determine the angle between two points with the following node group:

Even if it was not part of the question asked, in this case the bevel modifier should also be restricted to the upper edge of the extruded mesh. You can achieve this by using Store Named Attribute to create the selection "Top" with the identifier "bevel_weight_edge" and selecting the value "Weight" as the Limit Method in the bevel modifier.

Thanks!! I went and gave the resampling another try, but couldn't get the Bevel to show up like I originally said. So why did it work in your example? The answer seems to be that I have vector/free handles at angles around 90deg that break the Bezel. What's weirder is that its not that these angles don't work per se, but one has to fiddle with them to find like the exact values that work within a sea of not working ones? Adding pictures to illustrate to the main post.

@Sabrina Please share your blend file via https://blend-exchange.com ...I'm still not quite clear what exactly your goal is. There may be another solution for what you are trying to do.

Uploaded to https://blend-exchange.com/b/XPP5qGP9/. It's basically my shape and the nodes you shared. What I want is to have my curve with some vector handles and some aligned ones. The mesh I want to define from this is essentially one thats extruded and then rounded in all directions---hence the filleting to do it in the 2D plane, and then after extruding the Beveling to get rounding along the remaining axis if that makes sense. Essentially I want things to look like your file :) But with sharp angles in the underlying curve that seem to break things.

@Sabrina Ah, all right, in this case it is a little more complicated, as the Fillet Curve node also processes points that should not be rounded off in this case. I have modified the answer accordingly. Let me know if that works for you.

Whoa! I will admit, I only somewhat grasp what's going on here (mostly what exactly the angle is and why having it be bigger than the 80 is what we want to fillet), but I will absolutely take it! Thank you so much for putting in all this effort, this is amazing stuff :)


text:
How do I stop hair particles going through the body and the head?
Target : I intend to have long lady hair that go swirling in the wind. I am trying to achieve that through hair dynamics.
Problem: Hair are going through mesh(body and head). I am using blender 2.77a. I have read other existing solutions, but none of them helped.
Solution 1: I am able to achieve mesh collisions(using some other object)with hair particles. But when I am placing some proxy object under head, thats not helping. I have tried collisions to be as slow as possible.Here's the link to similar approach.
Stop hair from falling through emitter mesh
Solution 2: I have also tried using force field but that didn't help either. As when wind comes into play, hair particle stop respecting body mesh.
I am newbie to the blender world, and I would appreciate any help from blender community.

Possible duplicate of Stop hair from falling through emitter mesh

Please read comments below. Person finally switched to polygon hair. However as mentioned I have tried that solution as well.

No you don't need to switsch to polygon hair. i will write you a more complex tutorial on this thread. Just give me some minutes :)

Collision with the emitter is not supported yet (2.77).
But there is a workaround for this problem. So you want to collide the hair with the emitter but there is no self collision? Well but collision with other objects works, right? Right! So you simply have to duplicate the entire emitter mesh and set it to a "fake self collider!
How it is done:

Step 1: Duplicate the emitter mesh (select the Mesh and hit shift+D. Right Click to place the mesh at the
same position as the original mesh).
Step 2: Go to the Object Menu and deselect all Ray Visibilities. This way the duplication will not get rendered.
Step 2.5 (Optional): Now we want to eliminate the visibility of the duplication in the viewport. But simply restricting the view port visibility (by clicking the eye in the outliner) is not possible, because this way the collision may not be triggered.
Change the display mode from "textured" to "bounds" in the Object Display Settings. This way your duplicated mesh will only get displayed as a box and will not generate any annoying clipping artifacts.

Step 3: Enable collision on the duplicated object.

Step 4: Make sure everything is set up properly! In the modifier panel, the original emitter mesh should have the Armature at first position, followed by the Particles/Hair and followed by Subsurf.

Step 5: Also make sure the duplicated mesh has no Particle/Hair modifier. If it has one, you have to delete it in the particle panel!

Now your hair should collide correctly with the emitter!
If the hair still bugs into the body, try the following:
-in the hair dynamics setting, raise the "Quality" Amount (for me normally 5 Steps works just fine).
-in the collision settings of the collider, raise the "Outer face thickness" in the "Soft Body and Cloth" Settings.
-Raise the number of Subdivisions of the collider mesh (As i know, the collision does not get calculated by the faces of the collider but instead by the edges. If your mesh is to low poly the hair will slip through it)
-Raise the number of hair "segments" in the hair emitter settings.

Hi Demon, collisions does seem to be happening. But it takes an hour to bake. Is it normal ?

this depends highly on your hardware and complexity of the scene (and length of animation). if you want more information i recomend opening a new question with the topic "how to speed up cycles hair animation baking"

@DemonsFate i tried this method 4-5 time when i hit render huh my blender crash.

Well, actually hair collision DOES work.
The issue is...that the calculations are not precise enough to work in the default scale of scenes in blender (1U=Meter). To get HairDynamics to collide properly. You have to scale up the entire model (e.g. 1.75m human) by 10 or 12 times. Then even Steps=1 is enough to get porper collision.
One issue that still remains is:
that the hair will ignore the part of the collision mesh that is being "covered" by the emitter(scalp).
I also tried forcefields as you suggested. But the hair never comes to a rest. It keeps wiggeling around like in strong wind. Even with excessive amounts of damping.
What I did is the following:
I weighted the first 4 of 25 vertices (on 50cm long hair) of the hairstrands to 1.0...rest of the hair strands gets weight 0.0
Then, in HairDynamics..I set GoalWeight (under Pinning) to 0.02.
That way...the part of the Hair that ignored the collision mesh earlier stays still...while the rest of the Hair properly collide with the shoulders and the back of the character.
Well, actually the problematic hairpart is still sinking into the mesh..but due to the GoalWeight..it sinks so slowly that one can run a Simulation for hundreds of frames till it starts to sink into the mesh again. (Enough for most scenes)
The only issue is that the upper part of the hair looks really "static" now. (I'll propably just put 'hairclips' or some sort of 'bandana' there, so that it makes more sense to the eye ;)

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Cycles Render: How to remove accidental gloss/wet?
I'm still a newb to Blender and even more to Cycles Render but I have a model with mapped textures with nodes set up for transparent textures as well.. however when I make the model Smooth and change from Blender Render to Cycles Render I get on the left side this effect of gloss(?) or wet(?) like in the screen below.

What do I need to do to get rid of off this effect?
The .blend file of the model

It just looks like your texture mapping is messed up.  This is probably due to the fact that you created the materials in BI and then switched to Cycles.  Cycles and BI materials are completely different so you will have to remake the materials in Cycles.  We could help you with that if you could provide a little more detail, like some screenshots of your nodes or, even better, upload a .blend.

I uploaded the .blend file and I would be really thankfull if you would tell me what did I wrong because even in Blender Render my mapped texture is messed up :x

Unless misunderstood what you mean it looks like a basic normal problem. All you have to do is recalculate normals to make them all consistent.
Just enter edit mode select all faces of your model and press Ctrl + N

Dear lord how newb I am! Thank you very much for helping!

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
How do I add the ability to import Collada files to Blender 2.76?

As you can see from this screenshot, there's no option to import Collada files. There IS such an option in this question here. Was this removed at some point? Is it not available on the Linux version?

Possible duplicate of Can Blender export to the COLLADA format?

I'm installing via apt-get, tried using the PPA in the previous answer but it gave me 'This PPA does not support xenial' as an error.

My deleted earlier answer failed to take into account the fact that you are working from a Linux (apparently Debian) distribution. My frame of reference is on Windows, where the ability to import and export Collada files has been part of the default distribution since at least version 2.63, but I don't know that this is true with the versions for distributed by, or for, Debian.
I note in your comment to your question an error message "This PPA does not support xenial"; a quick search of the web shows that the name "xenial" is associated with an Ubuntu Linux distribution, though I'm not sure how this affects your situation.
If I were in your positon, I would first check with the appropriate individuals to see if the capability is been disabled in the Debian distro; if it is, then I would try uninstalling, and reinstalling Blender. If the capability is not part of the Debian version, there is an addon for Blender to import and export Collada files on Sourceforge, but I have no information as to how well it works, especially under Linux. Otherwise, if you have the skillset, you might try downloading the tarball for Blender directly from the Blender.org site and try to install Blender from there, though if you do that much work, you might as well upgrade to 2.77a.

Using Xubuntu 16.04 and this repository install Blender version 2.79a with the Collada import and export options included.
sudo apt-get update && sudo apt-get install python-software-properties
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:thomas-schiex/blender
sudo apt update && sudo apt install blender


text:
Rotating / Moving Bone Scales Mesh
Am learning about bones, so created a very basic rig.  When I rotate or move my foot bone, it scales that part of the mesh.
My object scaling is set to 1 ((ctrl + a) read about this from another question).
Here is a GIF showing the issue, and the weight paint for the foot.  Am not sure how to fix this.  I recreated my armature a number of times, but the same thing happens with the foot bones.

Can you upload your .blend?

I think this is a normal behavior as your vertices share the exact same weights for each bone... Imagine a vertex at the extremity, for one bone it is said "hey come we rotate", but for the other bone "hey no.. stay in place"... so the vertex falls in between

@lemon That's exactly what the issue was.  Thanks.  Didn't think about that at all.  I unpainted the vertices, and now it doesn't scale when moving the foot bone.  Thanks :)

@lemon If you post that as a solution, I can accept it :)

@JacketPotatoeFan, I won't because I wanted to find the real calculation to explain it more clearly. But I don't know it for now.


text:
How to fill a loop?
How should I go about filling this area between these two edges? Because it's a loop, I can't just make it one face, but how should I go about filling it as smaller faces?

You already have the bottom face. It would be the same for the top face. So why not just delete the vertices at the top and extrude the shape again upwards?

The bottom face is leftover from a different method I tried, it didn't work well at all so I'm trying other options

Harry McKenzie'suggestion is the simplest way to do what you want (extrude the bottom). But if you really want to fill the part, use AltF then if you want to simplify the topology, press X > Limited Dissolve:

Edit: For your current object, use a Smooth by Angle modifier to fix the shading:

And rearrange the topology a bit:

These suggestions work well, but there is another problem I end up encountering. after I fix overlapping vertices and shade smooth, there's a lot of artifacting going on. The way I'd usually deal with this would be to just inset the face, but because I have 2 faces, insetting both causes more artifacting. Using smooth by angle also won't work as I need to bevel the edges of the mesh as well. It's a complex problem, but is there anything obvious I could do to fix some of these issues?

Hello could you please highlight the artefacts you are talking about? Edit your original post with some new screenshots

The screenshots have been added, along with a new blend file

I've edited my answer

Thanks, but how did you do that topology change? Are you using an old version of the file

Use the knife tool (K), the join (J), the dissolve edges (Ctrl X), etc....    ;)

Since your origin is already right in the center of your object you can just use Mesh > Symmetrize with the direction set to -Z to +Z.

Result:

If you had a more asymmetrical mesh and you needed to fill the face in manually then you just need to fill in a little bit of the face first:

Then doing the rest is pretty easy.

These are just a couple of the options. What others are posting too are absolutely valid. There's alot of different ways to do this kind of thing.

As I mentioned before, the bottom face is a remnant of a different method I tried which posed a lot of issues. I'll go through these suggestions and see what works, thanks


text:
How to smooth out edge curves in blender
I have this curved geometry made up of edges, if I wanted to smooth out this curve to make it consistent instead of wobbly like it is how would I do that?

you have intermediate edges that tend to flatten the faces, first thing try a X > Limited Dissolve, give a Subdivision Surface modifier to your object and see what it gives, if it is still not good please share your file

@moonboots That method isn't consistent enough to help + there are too many edges to take care of. I unsubdivided the geometry which helped make it less complicated but it's still not a smooth curve. Subsurface ruins the entire geometry. I've uploaded the file to the question.

Right click > Shade Smooth then give it a Normals > Smooth by Angle modifier, it will smooth the shading, not the general shape, if you want to round the shape try a right click > LoopTools > Relax for example, increase the Iteration in the Opeartor Box

Using looptools did work nicely, but with some side effects (weird mesh artifacts). What part of the mesh would you recommend selecting to use the relax tool on?
Edit: playing around with it a bit makes it work flawlessly. Thanks for the suggestion, definitely an addon to keep in my arsenal.

You have intermediate edges that tends to flatten the faces, first thing in Edit mode do a X > Limited Dissolve to remove these edges. Then right click > Shade Smooth to smooth the shading, and give it a Normals > Smooth by Angle modifier to prevent the smooth shading between the perpendicular faces. To smooth the shape itself select the edges in Edit mode and right click > LoopTools > Relax, increase the Iteration in the Operator Box:


text:
eevee alpha image won't reflect
When I have an image with an alpha (such as a tree) it won't reflect in another object when using Eevee, but does with Cycles. Does anyone have a solution for this?
Tree: Principled BSDF with a png tree with alpha. The ground is also a BSDF with the Roughness at 0.
Blender 4.2
Raytracing on

What are your shaders ? Tree and ground

Probably need to add a reflection capture plane or sphere. Then bake the reflections.

Hello and welcome, please add more details about your settings and scene, the more info, the better. Also, make sure to have "Raytraicing" checked under render settings

Please clarify your situation: shader nodes for the tree, render settings, and which Blender version (Eevee was massively updated in v4.2). Additionally, you can also share your file with us.

TNow using 4.2 (was hoping it would work in the update).


text:
Reusing Custom Node Groups in Different Materials
In my Blender file I created a node group called Metal Node. In this node group, I'm using a driver to control a factor position. In order for the driver to work properly, the driver references the specific material the node group is in. However, I would like to use Metal Node in multiple different materials, and I think it would defeat the purpose of having to change what should be a reusable node group's drivers every time I add the node group to a new material. Is there any way I can have the driver's value point to the node group itself rather than the material it's a part of?
For example, in Test Material A, the driver works as intended:
Here's the material output:
The driver details:
However, putting the same node in a different material (Test Material B), the node group no longer affects the driver's value as seen here:

But the mesh uses the driver value from Test Material A:
Is there any way for the driver to either automatically reference the material it is in, or have the driver reference the node itself so it can be added to any material and automatically work as intended?
Edit: Sorry for any confusion, I meant a default value that can be changed by each node group instance. For example, the default factor value may be 0.5 for all node group instances, but in material A, the factor value could be 0.2 and in material B, the factor value could be 0.6.

Why don't you keep factor value inside the group, like this:

So that you don't need to drive the value, it will be the same for all materials that uses the node group.

Sorry for the confusion of my post, I meant a default value that can be changed by each node group instance. So the default value may be 0.5, but in material A, the value could be 0.2 and in material B, the value could be 0.6, for example


text:
Animate procedural cracking
I created procedural crack on a plane using this tutorial : https://www.youtube.com/watch?v=oYEaJxw4pSo
So far so good, but at the very end of the video, the guy animates the crack forming on its length and he doesn't explain how he does it. I have tried using mapping+Gradient Texture+Color Ramp at various places in my node tree but when it does affect the crack, it only changes the pattern or makes it go up and down my plane.
Any ideas on what nodes I need to add to my setup to affect the length of the crack?
PROJECT FILE :

Can you share your Blender project file? Instructions for sharing.

@Jakemoyo here is my project file : https://blend-exchange.com/b/5jgYKVB1/


text:
Expand Selection Mask in Geometry Nodes
I'm trying to create a mask that will give me random rectangles (not squares) on a surface that I can adjust the size of and I'm have a really hard time making a mask for it.
This is what I'm trying to do, with red and blue being controlled independently from each other.
This is just selecting faces using a random value. Sticking it into a blur attribute node expands it in all directions. Everything I've tried in order to control the expansion has failed. I've tried some really silly setups that didn't work and I'm going insane.
One of the biggest problems is that the geometry I'm using the mask on is curvy, so anything using position becomes difficult.
Any advice would be really appreciated. I've spent the past two days on this problem and I feel really dumb. Thank you.
Edit for Clarification: The initial selection (in white) I'm trying to expand on the X and/or Z axes. Only that initial white selection is random. The expansion of the mask would be controlled. It's important that I'm selecting faces as well.
Edit 2 For More Clarification: Again sorry for not being clear. The rule would be to expand in a chosen direction by a variable of my choosing. For example I want to expand on the X axes in both directions from the initial random selection (the white faces) by one face (red squares.
Then I would want to be able to expand the selection up on the z axes by one space from that selection (blue squares)
I hope that makes more sense. I'm not really sure how to be more clear than that.

Do you want to keep a « grid » effect (i.e. rectangles made of squares) ? Or are you looking for random distributions, just keeping horizontal and vertical sides ?

...and additionally, if you do not want to keep a grid but instead have random rectangles (which I assume otherwise it would be complicated to make them random in both, horizontal and vertical direction), I guess they should not overlap or is it okay if they do? It would have been good if you showed how you want it to look.

Sorry here's a bit more information for clarity. Basically from the initial selection (in white) I'm trying to expand the selection on the X and/or Z axes. Only that initial white selection is random. The expansion of the mask would be controlled. Added image for clarification. It's important that I'm selecting faces as well.

Maybe I'm the slowest brain here but I still don't understand what you are trying to achieve. What is the rule for your expansion, any cell should expand on all 4 directions by one cell ? Is there only one step of that, or multiple repeating steps ? Why are the red rectangles of your last image not square ? I'm sure it's clear for you, but I have too little understanding to even try to answer you.

OK I made another edit. Sorry If I haven't been very clear.


text:
How do I change the radius for proportional editing WITHOUT PgUp/PgDn?
First of all, I'm aware that there's already very similar questions out there, but I've tried the answers and they don't seem to work. My keyboard doesn't have PgUp/PgDn keys, and for some reason scrolling doesn't do anything. I've also tried adjusting it manually using the thing at the bottom of the tool panel, but that doesn't do anything either. Any suggestions?

Is this a laptop? What kind of keyboard are you using?

"for some reason scrolling doesn't do anything" I think you should search for that "some reason".

Are you sure you havent just got a massive radius thats too big to see?

I can see the radius, and it's small.

If you have trouble using the standard keyboard shortcuts you can adjust your settings to suit your keyboard.
In File->User Preferences under the Input tab you will find a group called Transform Modal Map, under which you will find the shortcut settings to adjust proportional influence. You can adjust these to anything that works for you, be sure to Save User Settings so that the changes are available every time you start blender.

It's a pity they can't be found with "Proportional" keyword (or any they consist of).

When I change it it still does nothing. (And I've tried changing other things this way before, and they don't work either.)

First load factory settings, then change the shortcuts. If that fails I would say report it as a bug and see if the devs can help you find why your setup fails to follow shortcut settings. Could you have an addon enabled that is "stealing" the shortcuts first?

It's very strange that it doesn't work for you (as @pezzatron said, be sure, that your proportional editing circle radius size isn't too big for you to see it). If you can't do it using the MouseScroll or Page Up/Page Down buttons you can still do it using the Proportional Size slider via Tool Shelf's (T) Translate panel.

I can still see the circle, and it's the default size. I tried everything you suggested and still nothing's working.

I struggled a bit with this. I found that only by actually doing the transform and then changing the slider worked.Or clicking and holding the mouse button down and then (whilst holding the mouse button down) doing page up/down worked.


text:
How do I get hair particles to show up when exported?
I made some hair particles, but when I export it to .dae only the object under it shows up. Did I skip something? How do I get it to show?

Oops, it's .dae. I tried the solutions in the questions you linked to, but when I convert it, it just turns to solid color and loses the hair-like appearance.


text:
Solidify Modifier won´t create a solid surface
I´m quite new to Blender and wanted to try out 3D printing.
Now I´ve already created a form and wanted to add wall thickness. I have already diagnosed it with Netfabb and apart from the fact that it´s not closed it is alright.
My problem now is that I have applied the "Solidify" modifier and it only adds a an unpleasant rim instead of giving it a water tight surface. What am I doing wrong?

Uncheck the "Only Rim" checkbox in the Solidify modifier settings and you will get the expected result.

Ah nice. Now i do have at least a solid structure. But what needs to be done with the overlapping textures?


text:
Fill hole between a mesh and a plane
I have a mesh and a plane, see picture 1.
I would like to append my mesh by filling the red part of the picture 2:
I tried with a Shrinkwrap modifier with the following parameters by the result is not perfect (see red part of picture 3).
Does anyone have an idea?
Thanks a lot,
Maxime
http://blend-exchange.giantcowfilms.com/b/3146/

It's hard to tell from a single perspective what's going on in the projection. Could you provide more information?

Thanks for your reply :)
Here are some other views: link The red part is a not wished behaviour.

If it possible, I would suggest to upload this part of your project to http://blend-exchange.giantcowfilms.com/ so we can have a deeper look at the interaction between the two objects.

The file is here: (There is an modifier for the mesh (sole) that is not visible)

The modifier is working as expected. Maybe you can try to limit the vertices taken into account with the Vertex group option: http://imgur.com/a/1lDHb. But all really depends on what your modeling needs are. What is your final goal?


text:
Extrude around selected vertices
I selected the outside vertices of the following mesh:

I would like to extrude these selected vertices to have exactly 3mm around them.
I tried with E + S but I can't get exactly the same distance between the selected vertices and the new ones:

The normals:

The blend file
Thanks for you help.

Related https://blender.stackexchange.com/questions/84358/how-to-scale-all-the-edges-proportionally

Thanks you for thé link but how can I set thé précise distance?

@Maxime Just input the desired value using keyboard.

@DuarteFarrajotaRamos I'm really sorry but I can make it working. Could you show me a real example using my blend file? When I try ALT S, the mesh is modified on each axis (I just want x and y)

Press Shift+Z to scale only in X and Y during transforms.

@DuarteFarrajotaRamos It's still not working. Maybe there is an issue due to the face normals. I added a screenshot in the initial message


text:
Little fails in retopology
I had a mesh in which I wanted to do some retopology to add some holes in it.
Altough I did retopology the mesh, some strange failures happened.
How can I fix those fails? And also, after I've done this, can I add holes without having any glitches of some kind?
Edit Mode:
Original
Retopology

Please post a screenshot of your mesh in Edit Mode.

Done @PaulGonet

What "glitches" are you referring to?

@pycoder Everytime I did a hole in it, some "phantom" face appeared above it. I made a question about it. link

Can you indicate the glitches that you are concerned about in an image in Edit Mode? Could you describe them a little more?

Yep, I seen no obvious glitches, could you clarify what you mean?

@Sazerac Here's the glitches I'm talking about. Keep in mind this is the old mesh, not the retopologised one http://blender.stackexchange.com/questions/76722/how-can-i-make-a-hole-in-this-mesh-and-not-mess-it-up

@DuarteFarrajotaRamos You were the one who answered me to the previous question, you said it was a good bevel circle case. But you mentioned topology in which I had the ideia of the topology being wrong, so I retopologised it and tried again, but the same glitchy face appears. http://blender.stackexchange.com/questions/76722/how-can-i-make-a-hole-in-this-mesh-and-not-mess-it-up

Your topology seems quite good, especially the fist one. What glitchy faces are you talking about, can you annotate a screenshot and mark which face is giving your trouble?

@DuarteFarrajotaRamos In which question? This one or the linked one?

@DarkKool This one.


text:
How to make cutlass blade
Can anyone tell me how to make the blade of a cutlass correctly?
I tried the whole afternoon but it's either too thin or too thick and I'm failing the dimensions...

--Edit--
The sword's name is actually cutlass, not dadao.
Here's the new blade but still inperfect

Could you provide some screenshots of this blade?

@LukeD The blade in real life or the one I modeled?

Real life, always show what you want to achieve. I don't know this blade and probably not only me.

@LukeD Just changed the image and I made a mistake. The name of this sort of swords is cutlass.

There are lot of tutorials on the web about making swords/blades/axes. I can't see what exact technique did you used to model this blade. Maybe providing blend file to: http://blend-exchange.giantcowfilms.com/ could help to solve problem with thickness.

@3fingeredfrog I need to know, how can I become your student?

Its often a good idea to load up a reference image of the item that your are trying to model into the Background of the 3D Editor window. Then in Wireframe view trace over the image with vertices.
Its worth spending a little time getting the image setup correctly: Size, Position, Rotation, and Scale.
One thing to remember when using Background images, they only show up in Orthographique view and in the Axis that you have selected in the Background Image panel.

Oooops, 15 should read Eddge Split modifier and not Edge Spit !

Thank you so so ao much! The answer is so good and complete!

How exactly do you do the final edge on the blade's point?
Do you merge them together or scale them closer because I think I'm doing something wrong.
Gonna publish the model I did following your explanation

I just checked, you are right there is a little hole at the blade tip. I would make it so that the vertices around the hole are joined together at center.

But how exactly do you sharp it? Some vertices are on the x axis and they take out that pointy sharp on the blade tip

Enable clipping in the Mirror modifier and push those vertices to center, then select all the vertices at the tip and merge at center. I am adding a link to a version of your cutlass i have "cleaned up"  a bit.    I removed one of the two vertical edge loops, straigtend out the thickness, added some edge loops towards the tip, added back the bevel to the vertical central edge loop, and joined all the vertices at the tip.

Just to note: The Reference image is there as a guide only. You can deviate from the background image to get smoother lines :)


text:
Remove Semi-Visible Fire Domain
While trying to render some fire simulation, I noticed my domain's volume is semi-visible.
Does anyone know how I can remove this shadow-like box?

Edit:
Due to the request on trying to add more information on this question, here is my best explanation.
I followed a tutorial on youtube on how to create fire.
When I render the scene, that blackbox appears and I assume it has the dimensions that the smoke takes due to settings, but I might be wrong.
These are the nodes he used (25:25)

My outliner looks like this

And these are the dimensions of my domain

Hope I made myself a bit clearer

@cegaton Edited, not sure if I made myself clear on the question


text:
How can I animate something being constructed?
I'm trying to animate something like a wall being created out of the ground.
Like this, per example:
What I want is to make the ice appear (being stacked and you can see is it forming into a "puddle" like) on the ground first.
Being created like this

Followed by the walls being pushed out of the ice in order to create the wall.
Can anyone tell me how can I do that?

Those are pretty distinct effects, there is no single simple recipe for that, nor are those trivial to simulate. This question is too broad, try narrowing it down to specific problems. Also see related https://blender.stackexchange.com/questions/73633/animate-branch-growth or https://blender.stackexchange.com/questions/82188/fill-along-the-front-of-a-path-of-an-svg

@DuarteFarrajotaRamos That helped a lot but it isn't exactly like that.
I would say, imagine a snow storm, the snow will create a little pile. Now that but fast forward.

You could maybe animate a displacement map on top of a growing object

@DuarteFarrajotaRamos I'm still learning.
Could you show me what's that and how to do that?

Maybe these can get you started https://blender.stackexchange.com/questions/15036/how-to-animate-the-displacement-of-the-displace-modifier and https://blender.stackexchange.com/questions/49199/water-ripples-waves-on-the-surface-of-an-object/49216#49216 You can animated the Strength parameter of the modifier.

Using shape keys and drivers could work

If your "wall", as in the first picture, is "icy" meaning that it should grow from something like "water", another approach could use a reversed fluid animation, maybe:

You could use better (reverse) "start" shapes, and/or add displacements to final result, and also animate materials/textures to make the  fluid > solid transition modify the final shape, adding more interesting details...

That helped a lot but not exactly what I'm asking. Making the wall appear was pretty much like you did but my intention is to keep the ice on the floor (more like snow) and the wall coming up out of that pile of "snow"

And one more thing.
I'm knew into blender, so how exactly did you made that animation on the timeline?
I inserted the fluid effect but when I move frames, nothing happens

@DarkKool that animation comes from simulation baking (see the picture has a big "bake" button jut below of fluid type.

An error pops up: "No fluid inout objects in the scene"

@DarkKool if you used "quick fluid" it should not happen. That error should mean that you have no "fluid" or "inflow" objects in the simulation. The "quick fluid" setup creates a fluid object for the selected object (three pillars in the example above) and a domain around it. As for keeping some "ice" on the floor, you could fake it in any way you like, eg: with another shape or else... remember CG is often about faking if possible (cheap and quick)


text:
Recalculate image users after user_remap
Using python, I remapped some images using image.user_remap(new_image). The images are assigned correctly, but the user count is wrong.
How can I force to check if an Image really has users without restarting the file?
Currently it is somewhat random which Images are image.users==1 and which don't. Some which are actually used return 0 and other which don't return 1.
If I save the file like this and restart, actually being used images will be missing, leaving unassigned UV textures in my mesh. However, activating every Image will set image.users to 1, regardless of wether they really have users or not. This way image.users will be correct after saving and restarting, but I need to rely on this data without restarting Blender.
Please see the attached file. After running the script, user counts will be wrong. Wrong Images will be deleted after restarting.
https://www.dropbox.com/s/4jywkbwadnnqgl4/Test2.blend?dl=0
Here is a list that shows which images I wish to keep and remove.
Kept images
(old name                   new name)
CrackedSand2.tga.001        crackedsand2.tga
Desertrocku.tga             Desertrocku.tga
Desertrocku2.tga.001        desertrocku2.tga
G3_Desert_Rock.tga          G3_Desert_Rock.tga
G3_PlainSand_02.tga         g3_plainsand_02.tga
G3_PlainSand_Blut.tga       G3_PlainSand_Blut.tga
G3_PlainSand_Blut2.tga      G3_PlainSand_Blut2.tga
ROCK6.tga                   ROCK6.tga
ROCK6u.tga                  ROCK6u.tga
SandDunesBig.tga            SandDunesBig.tga

Removed images
G3_PlainSand_02.tga.001
G3_PlainSand_02.tga.002

Pattern: Remove ".001" etc. suffixes. Note that the case is supposed to be set to lower case for used images after line #20, but this fails to work correctly because the user count is wrong already.

Do you have an example file "ready to test"?

@lemon I added a file. At the bottom of the script is what I can do to keep all imags saved until next restart.

What if you change line #7 to "for i, image in enumerate( bpy.data.images ):" and line #15 to "elif i != correct_index :" ? If that's it (please check), I think that could be reported in the bug tracker.

In complement, the kept ids may need to have use_fake_user too (depending on the original, maybe, or both itself and the original)

If I understand you correctly, then you mean it should be avoided to remap an ID to itself. What I did: #14 if correct_index == -1: ... #15 elif index == correct_index: pass # 16 else: image.user_remap... The result is different, but still not correct. The faces have the desired image assigned, but the user count ist wrong as before. Might this be a bug of the recently introduced user_remap function? Working with fake_users will be my last resort, but feels more like a hack.

It is difficult for me to take the time to manually calculate the good result (which images are to be kept between them all). Could you give this list of image to keep as a list of pairs of (oldName, newName)?

The subject is more a Python problem than a Blender problem except for some points I'll try to explain below:
Original code:
def cleanup_images(case='none'):
    import os.path
    for image in bpy.data.images:
        filename =  os.path.basename(image.filepath)
        correct_index = bpy.data.images.find(filename)

        if correct_index == -1:
            image.name = filename
        else:
            #May remap an image on itself
            image.user_remap(bpy.data.images[correct_index])

The problem of that is an image can be remapped on itself, and if you do that, the image looses its user = 1 which becomes 0 (this is the point to report to the bug tracker in my opinion or at least documented).
Second attempt, I though that enumerating may be the solution:
def cleanup_images(case='none'):
    #rename all images to their filename
    import os.path
    for i, image in enumerate( bpy.data.images ):
        filename =  os.path.basename(image.filepath)
        correct_index = bpy.data.images.find(filename)

        if correct_index == -1:
            image.name = filename
        elif i != correct_index:
            image.user_remap(bpy.data.images[correct_index])

But this does not work, very possibly because user_remap may change the indexes so that some images continue to remap on themselves.
Correct code:
def cleanup_images(case='none'):
    #rename all images to their filename
    import os.path
    for image in bpy.data.images:
        filename =  os.path.basename(image.filepath)
        correct_index = bpy.data.images.find(filename)

        if correct_index == -1:
            image.name = filename
        else:
            correct_image = bpy.data.images[correct_index]
            if image != correct_image:
                image.user_remap(correct_image)

We no longer use index but direct objects comparison to apply user_remap.
For information, an alternative approach with no use of indexes:
def cleanup_images2( case = 'none' ):
    from collections import defaultdict
    import os.path

    #Organize images by filepath
    toClean = defaultdict( list )
    for i in bpy.data.images:
        toClean[i.filepath].append( i )

    for key, value in toClean.items():
        #image to keep is the first
        toKeep = value[0]
        #the other ones are remapped to the first
        for i in [i for i in value if i != toKeep]:
            i.user_remap( toKeep )
        toKeep.name = os.path.basename( toKeep.filepath )

For your information, added to the bug tracker here https://developer.blender.org/T51150


text:
Slope of an fcurve - how to determine?
Is there any function or method to obtain the slope (first derivative) of an fcurve at a particular point/frame? (Corresponding to velocity or angular velocity or "velocity of scale" or any other rate of change of a property with an fcurve).
At the basic level I'd like to have a driver depend on whether a scene object is travelling upwards or downwards, not just on it's instantaneous location. The velocity would have even more uses than just a simple sign.
At the moment I can approximate it by sampling the fcurve a little before and a little after the frame in question, and calculating a slope from there, but it feels a bit like a hack, particularly if a better way to calculate it exists.
The maths for calculating the slope of linear and Bezier interpolated fcurves isn't that difficult, but so far I've been unable to find an elegant method of doing so. The upcoming easing equations would also have an simple mathematical solution, but again it's a matter of whether it's implemented as a python function or whether it would have to be calculated from the control points. (If it does have to be calculated that way, I'd love some advice on how to calculate it best).
Further, is it possible to obtain the second derivative (acceleration) for use in a driver?

Section 9 is about derivatives http://pomax.github.io/bezierinfo/

No, blender doesn't have the ability to do this.
For Bezier splines you could probably calculate this yourself, but once you have F-Curve modifiers and use 2.71's new easing options, this becomes very complicated.
So the best you can do is check values to either side of the keyframe with some offset (called nabla)

I came across a problem similar to this, when I wanted to use the "Image Offset" checkbox in the Edit Strip tab of the VSE:
How can I add some 'blurry-ness' to a video clip, when I animate the x-component (or y-component) with key-frames?
My solution was to use the Node Compositor and couple of Drivers;This doesn't calculate a slope value, but you may be able to refine it, using the concept:
Slope (M) = Y/X, where Y = (Y1)-(Y2) and X = (X1)-(X2), representing two points (X1,Y1) and (X2,Y2) equally spaced from point (X,Y) on a graphed line or curve. I'm sure that someone can come up with a better definition, that this one.
I don't think that Blender has a function for this (yet) in the compositing nodes (as of Blender 2.79), but they do have 'value' nodes and 'math' nodes that can derive M, if you can get the values of (X1,Y1) and (X2,Y2) at the same time.
So, instead of trying to get two points on the same curve (or line) at the same time, I caused Blender to generate one point on two similar curves (at the same time).
Do this by animating an object, somewhere in a Scene. The object should have all the keyframes and interpolated motion elements that you want your video strip to have (I used an 'empty' object). After every movement is to your liking, use 'shift-d' to duplicate the original object. Then, in the F-Curve editor, select and move all the keyframes for the duplicate object ahead by one frame. I used this key-board command:
a
(toggle 'all' key-frames on)
gx1
(Go in the X-direction 1(frame)
press 'enter'
Now, at any frame number on the Timeline, I can compare the X or Y components of these objects to see if they are becoming closer, or farther apart. With this information, I can animate the 'Vector Blur' node's Speed input to change the amount of blur that is added to the animated displacement('Displace' node).

Composite Node Editor - Detecting speed of movement with two drivers (from Original and Duplicate objects) and applying to video. This causes motion blur to be exaggerated while video displacement is animated. This example (though poor) is only meant to blur in X-axis. It's not perfect, but its what I've got.
The numbers in the Value nodes are generated by drivers, linked to X-axis data of my two objects.
These values, in my example, are so large that the scale of the grid in the main blender 3D view becomes almost un-seeable. Blender didn't complain, though.
For most of the frames, the location values are equal, meaning a 'zero-value' for speed input to the Vector-blur node. But a difference between the values comes when the first empty object has a head-start on the timeline.
This example is not really 'slope', even according to my own definition. but it gets the blur going, close enough to where I need it. further refining is needed, but I'm out of time.


text:
How can I safely call another addon?
How can I check to see if an operator from another addon is installed from my addon? This my current attempt.
def doCoolThing():
   try:
           bpy.ops.coolAddon.foo()
    except AttributeError:
           print("COOL ADDON NOT INSTALLED!")

Knowing where the addon should be found is the first thing to sort out. You can either look at the addon source and see where it attaches to, or investigate by hand. Generally you'll find it in the bl_idname of the Operator.
For example I have an addon called autoVTX for which the Operator code has these lines at the top:
class AutoVTX(bpy.types.Operator):
    bl_idname = 'view3d.autovtx'
    bl_label = 'autoVTX'

    # ...

This Operator can be accessed from bpy.ops.view3d.autovtx()
The try/except route is fine btw, as CoDEmanX rightfully points out in the comment. If you know where an addon or operator should be when installed then this should work.
def doCoolThing():
   try:
       bpy.ops.view3d.coolAddon.foo()
   except AttributeError:
       print("COOL ADDON NOT INSTALLED!")

Ben's try/except approach is actually more pythonic: https://docs.python.org/3/glossary.html?highlight=forgiveness#term-eafp. You could also import another addon's code, but rather if you're interested into a certain function and not the whole thing.

Another way is to look up the type:
if hasattr(bpy.types, "IMPORT_SCENE_OT_obj"): ...

You can locate the script like this by the way:
>>> sys.modules[bpy.types.IMPORT_SCENE_OT_obj.__module__].__file__
'C:\\Program Files\\Blender Foundation\\Blender\\2.70\\scripts\\addons\\io_scene_obj\\__init__.py'

where does hasattr live?

it's a built-in language feature, if that's your question


text:
What ui would work for choosing from a long, long list?
I need the user to choose from a huge list of items. This is ugly and useless for lists longer than 100 items.  I'm happy with the rest of the code. I just want a scrollable listbox really.
class my_panel(Panel):
      bl_label = "MYPANEL"
      bl_idname = "SCENE_PT_mypanel"
      bl_space_type = 'PROPERTIES'
      bl_context = 'scene'

      def draw(self,context):
           props = context.scene.myAddon
           self.layout.prop(props, 'jlist', text='jlist')

def updateJlist(self,context):
     t = []
     for i,v in enumerate(master_jlist):
          t.append((v.name,v.name,'',i)

     return t

jlist  = EnumProperty( items=updateJList)
bpy.types.Scene.myAddon = jlist

I would also be happy with something like the material list. I can't seem to get UILayout.template_list, or UILayout.template_ID to work. Examples on the web refer to IDPropertyGroup which seems to be missing in recent blender builds.

To let the user explicitly select an item from a large set, I discourage a template_list - although there's a search filter.
1. Instead, I recommend the search popup:
import bpy

def item_cb(self, context):
    return [(str(i), "Item %i" % i, "") for i in range(100)]

class SimpleOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.simple_operator"
    bl_label = "Simple Object Operator"
    bl_property = "my_enum"

    my_enum = bpy.props.EnumProperty(items=item_cb)

    def execute(self, context):
        self.report({'INFO'}, "Selected: %s" % self.my_enum)
        return {'FINISHED'}

    def invoke(self, context, event):
        wm = context.window_manager
        wm.invoke_search_popup(self)
        return {'FINISHED'}

def register():
    bpy.utils.register_class(SimpleOperator)

def unregister():
    bpy.utils.unregister_class(SimpleOperator)

if __name__ == "__main__":
    register()

    # test call
    bpy.ops.object.simple_operator('INVOKE_DEFAULT')

2. Or nested menus if there's some kind of hierarical structure in your data. The example uses dynamically-created menus:
import bpy

class SimpleOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.report"
    bl_label = "Report"

    text = bpy.props.StringProperty()

    def execute(self, context):
        self.report({'INFO'}, self.text)
        return {'FINISHED'}

class SimpleCustomMenu(bpy.types.Menu):
    bl_label = "Simple Custom Menu"
    bl_idname = "OBJECT_MT_simple_custom_menu"

    def draw(self, context):
        layout = self.layout
        for i in range(6):
            layout.menu("OBJECT_MT_dyn_%d" % i)

def register():
    bpy.utils.register_class(SimpleCustomMenu)
    bpy.utils.register_class(SimpleOperator)

def unregister():
    bpy.utils.unregister_class(SimpleCustomMenu)
    bpy.utils.unregister_class(SimpleOperator)

if __name__ == "__main__":
    register()

    for i in range(6):
        idname = "OBJECT_MT_dyn_%d" % i

        def func(self, context):
            self.layout.label("Parent: " + self.bl_label)
            for j in range(10):
                option_text = "Option %i" % j
                props = self.layout.operator(SimpleOperator.bl_idname, text=option_text)
                props.text = "%s > %s" % (self.bl_label, option_text)

        opclass = type("OBJECT_MT_dyn_%d" % i,
                       (bpy.types.Menu, ),
                       {"bl_idname": idname, "bl_label": "Test %i" % i, "draw": func},
                       )
        bpy.utils.register_class(opclass)

    # The menu can also be called from scripts
    bpy.ops.wm.call_menu(name=SimpleCustomMenu.bl_idname)

3. A template_list() can be used to show a single line:
layout.template_list(..., rows=1)

You can force the built-in filter options to always show in the UIList subclass:
def draw_item(self, context, layout, data, item, icon, active_data, active_propname):
    self.use_filter_show = True

4. Something hand-crafted: a StringProperty for a search phrase and as many buttons as there are matches. The number of matches should be limited (hard-limited in below code), you could implement pagination if necessary. You make make the layout adapt to the panel width if you want:
import bpy
import random

vowels = ["a", "e", "i", "o", "u"]

def fake_words():
    words = []
    for w in range(random.randint(1, 3)):
        for i, l in enumerate(range(random.randint(2, 7))):
            if i % 2 == 0:
                words.append(vowels[random.randrange(len(vowels))])
            else:
                words.append(chr(random.randint(97, 122)))
        words.append(" ")
    return "".join(words).title()

wordlist = [fake_words() for i in range(1000)]

class ReportSelected(bpy.types.Operator):
    bl_label = "Report"
    bl_idname = "wm.report_selected"

    text = bpy.props.StringProperty()

    def execute(self, context):
        self.report({'INFO'}, self.text)
        return {'FINISHED'}

class HelloWorldPanel(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_label = "Hello World Panel"
    bl_idname = "OBJECT_PT_hello"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "object"

    def draw(self, context):
        layout = self.layout
        wm = context.window_manager
        search_phrase = wm.custom_search
        cols = context.region.width // 100
        matches_per_col = 10
        matches_max = matches_per_col * cols

        layout.prop(context.window_manager, "custom_search", text="", icon="VIEWZOOM")

        matches = [w for w in wordlist if search_phrase.lower() in w.lower()]

        col = layout.column(True)

        for i, w in enumerate(matches):
            if i >= matches_max:
                break

            if i % cols == 0:
                row = col.row(True)

            row.operator("wm.report_selected", text=w).text = w

        matches_more = len(matches) - matches_max
        if matches_more > 0:
            layout.label("+ %i matches" % matches_more)

def register():
    bpy.types.WindowManager.custom_search = bpy.props.StringProperty()
    bpy.utils.register_class(HelloWorldPanel)
    bpy.utils.register_class(ReportSelected)

def unregister():
    bpy.utils.unregister_class(HelloWorldPanel)
    bpy.utils.unregister_class(ReportSelected)
    del bpy.types.WindowManager.custom_search

if __name__ == "__main__":
    register()

I can think of many more solutions, like a grid of buttons with a letter of the alphabet each as a first step, and in the second, show only strings that start with the chosen letter (probably as buttons).
Or multiple dropdown menus, select a letter or category first, and let the second update based on the first, to show only the relevant entries.

I'm using a panel, not an operator. The second idea is interesting but I don't see how well this works for large lists of dynamically generated choices. I'm just trying to find the string in the list of strings.

Added two more options, which can be used in a panel.

Interesting implimentations. I considered paginatation but it seemed like an unfair hack. I'm going with the UIList Subclass. The limitations are I can compound the list_items into a better string using ID + name + description, but I can't search against it.

You can either implement your own filter_items function in the UIList subclass, or concat the search fields and set it as .name (which is searched against). You can draw ID, label and description or whatever, but leave out the .name property (implementation example added to my answer).

I thought of that one too. But since the additional properties are editable, I didn't want to have to edit the .name property every time the user edits something. I suppose this is all safe in blender. I'll just have to change my reference properties from strings to pointer properties so the id's don't become incorrect.

You've helped me reach the limit of what blender can do. I'll mark this as an accepted answer.

I moved additional template_list() examples to a new answer, as it's a bit off-topic. There's no need to update the .name property just for searching, you can implement your own searching and sorting in a proper way by implementing the filter_items() method.

More on template_list(), which is related to the specific problem:
To search in properties other than a PropertyGroup's  .name, you can either write a custom filter function (see Ui List Template), or use a little hack: Concatenate all fields for search and use it as .name, but not draw it:
bl_info = {
    "name": "Collection Menu",
    "author": "CoDEmanX",
    "version": (1, 0),
    "blender": (2, 65, 0),
    "location": "",
    "description": "",
    "warning": "",
    "wiki_url": "",
    "category": ""}

import bpy

coll_data = (
    ("Option A", "The first option, can be found by searching '1' as well"),
    ("Option B", "You can find this by searching for 'roflmao'"),
    ("Some text", "Some more descriptive explanation"),
    ("Blabla", "Talking stuff...")
)

class COLL_UL_search(bpy.types.UIList):
    def draw_item(self, context, layout, data, item, icon, active_data, active_propname):
        if self.layout_type in {'DEFAULT', 'COMPACT'}:
            # You should always start your row layout by a label (icon + text), or a non-embossed text field,
            # this will also make the row easily selectable in the list! The later also enables ctrl-click rename.
            # We use icon_value of label, as our given icon is an integer value, not an enum ID.
            # Note "data" names should never be translated!
            split = layout.split(0.3)
            split.label(item.label)
            split.label(item.description)

        elif self.layout_type in {'GRID'}:
            pass

class MyColl(bpy.types.PropertyGroup):
    #name = bpy.props.StringProperty()
    label = bpy.props.StringProperty()
    description = bpy.props.StringProperty()

class HelloWorldPanel(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_label = "Hello World Panel"
    bl_idname = "OBJECT_PT_hello"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "scene"

    def draw(self, context):
        layout = self.layout

        col = context.scene.col
        idx = context.scene.col_idx

        if idx >= len(col):
            #context.scene.col_idx = len(col) - 1
            text = "(index error)"
        else:
            text = col[idx].name

        layout.template_list("COLL_UL_search", "", context.scene, "col", context.scene, "col_idx")

def collhack(scene):
    bpy.app.handlers.scene_update_pre.remove(collhack)

    try:
        scene.col.clear()
    except:
        pass

    for i, (label, description) in enumerate(coll_data, 1):
        item = scene.col.add()
        item.label = label
        item.description = description
        item.name = " ".join((str(i), label, description))

def register():
    bpy.utils.register_module(__name__)
    bpy.types.Scene.col = bpy.props.CollectionProperty(type=MyColl)
    bpy.types.Scene.col_idx = bpy.props.IntProperty(default=0)

    bpy.app.handlers.scene_update_pre.append(collhack)

def unregister():
    bpy.utils.unregister_module(__name__)
    del bpy.types.Scene.col
    del bpy.types.Scene.col_idx

if __name__ == "__main__":
    register()

And here's a complex, editable UIList that searches numbers, labels and descriptions:
import bpy

class MESH_UL_mylist(bpy.types.UIList):
    def draw_item(self, context, layout, data, item, icon, active_data, active_propname, index, flt_flag):
        self.use_filter_show = True

        if self.layout_type in {'DEFAULT', 'COMPACT'}:
            split = layout.split(0.1)
            split.label("%i." % (index + 1))
            split = split.split(0.3)
            split.prop(item, "label", text="", emboss=False)
            split.prop(item, "description", text="", emboss=False)

        elif self.layout_type in {'GRID'}:
            pass

    # Called once to filter/reorder items.
    def filter_items(self, context, data, propname):

        col = getattr(data, propname)
        filter_name = self.filter_name.lower()

        flt_flags = [self.bitflag_filter_item if any(
                filter_name in filter_set for filter_set in (
                    str(i), item.label.lower(), item.description.lower()
                )
            )
            else 0 for i, item in enumerate(col, 1)
        ]

        if self.use_filter_sort_alpha:
            flt_neworder = [x[1] for x in sorted(
                    zip(
                        [x[0] for x in sorted(enumerate(col), key=lambda x: x[1].label)],
                        range(len(col))
                    )
                )
            ]
        else:
            flt_neworder = []

        return flt_flags, flt_neworder

class MyColl(bpy.types.PropertyGroup):
    #name = bpy.props.StringProperty()
    label = bpy.props.StringProperty()
    description = bpy.props.StringProperty()

class HelloWorldPanel(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_label = "Hello World Panel"
    bl_idname = "OBJECT_PT_hello"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "scene"

    def draw(self, context):
        layout = self.layout
        layout.template_list("MESH_UL_mylist", "", context.scene, "col", context.scene, "col_idx")

# Demo data
coll_data = (
    ("Option A", "The first option, can be found by searching '1' as well"),
    ("Option B", "You can find this by searching for 'roflmao'"),
    ("Some text", "Some more descriptive explanation"),
    ("Blabla", "Talking stuff...")
)

def register():
    bpy.utils.register_module(__name__)
    bpy.types.Scene.col = bpy.props.CollectionProperty(type=MyColl)
    bpy.types.Scene.col_idx = bpy.props.IntProperty(default=0)

    # Add demo data
    scene = bpy.context.scene
    #scene.col.clear()
    if 1: #len(scene.col) < 1:
        for label, description in coll_data:
            item = scene.col.add()
            item.label = label
            item.description = description

def unregister():
    bpy.utils.unregister_module(__name__)
    del bpy.types.Scene.col
    del bpy.types.Scene.col_idx

if __name__ == "__main__":
    register()

very cool. self.filter_name is the key here.

This is what I found:
template_ID seems to only work with ID types which you can't create without writing C code.
prop_search will let you do a search box with a selection dropdown although not the same as the template_ID.
template_list should be implimented like this
layout.template_list("UI_UL_list", '', props, <collection prop>, props, <int prop>)

But, template_list is large and can't be minimized to a single line. So one might need trigger an event after the item is chosen to hide that ui element.

@CodeManX thank you for this. I happened to use it so I remade for 2.80+
bl_info = {
    'name': 'Search Browser',
    'description': 'Search Browser',
    'author': 'CodeManX, Kabu',
    'version': (0, 0, 1),
    'blender': (2, 80, 0),
    'location': 'View3D > Sidebar > Search Browser',
    'description': 'A Search Browser',
    'warning': '',
    'wiki_url': '',
    'tracker_url': '',
    'category': 'Object'
}

import bpy

class SEARCHBROWSER_UL_mylist(bpy.types.UIList):
    def draw_item(self, context, layout, data, item, icon, active_data, active_propname, index, flt_flag):
        self.use_filter_show = True

        if self.layout_type in {'DEFAULT', 'COMPACT'}:
            split = layout.split(factor=0.1)
            split.label(text="%i." % (index + 1))
            split = split.split(factor=0.3)
            split.prop(item, "label", text="", emboss=False)
            split.prop(item, "description", text="", emboss=False)

        elif self.layout_type in {'GRID'}:
            pass

    # Called once to filter/reorder items.
    def filter_items(self, context, data, propname):

        col = getattr(data, propname)
        filter_name = self.filter_name.lower()

        flt_flags = [self.bitflag_filter_item if any(
                filter_name in filter_set for filter_set in (
                    str(i), item.label.lower(), item.description.lower()
                )
            )
            else 0 for i, item in enumerate(col, 1)
        ]

        if self.use_filter_sort_alpha:
            flt_neworder = [x[1] for x in sorted(
                    zip(
                        [x[0] for x in sorted(enumerate(col), key=lambda x: x[1].label)],
                        range(len(col))
                    )
                )
            ]
        else:
            flt_neworder = []

        return flt_flags, flt_neworder

class SEARCHBROWSER_mycoll(bpy.types.PropertyGroup):
    label : bpy.props.StringProperty()
    description : bpy.props.StringProperty()

class SEARCHBROWSER_PT_mypanel(bpy.types.Panel):
    """Creates a Panel in the Properties window"""
    bl_label = "Search Browser"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
    bl_category = "Search Browser"

    def draw(self, context):
        layout = self.layout
        layout.template_list("SEARCHBROWSER_UL_mylist", "", context.scene, "col", context.scene, "col_idx")

        # Demo data
        col_data = (
            ("Option A", "The first option, can be found by searching '1' as well"),
            ("Option B", "You can find this by searching for 'roflmao'"),
            ("Some text", "Some more descriptive explanation"),
            ("Blabla", "Talking stuff...")
        )

        # Add demo data
        col = context.scene.col
        if len(col) < 1:
            for label, description in col_data:
                item = col.add()
                item.label = label
                item.description = description

def register():
    bpy.utils.register_class(SEARCHBROWSER_mycoll)
    bpy.utils.register_class(SEARCHBROWSER_UL_mylist)
    bpy.utils.register_class(SEARCHBROWSER_PT_mypanel)

    bpy.types.Scene.col = bpy.props.CollectionProperty(type=SEARCHBROWSER_mycoll)
    bpy.types.Scene.col_idx = bpy.props.IntProperty(default=0)

def unregister():
    del bpy.types.Scene.col_idx
    del bpy.types.Scene.col

    bpy.utils.unregister_class(SEARCHBROWSER_PT_mypanel)
    bpy.utils.unregister_class(SEARCHBROWSER_UL_mylist)
    bpy.utils.unregister_class(SEARCHBROWSER_mycoll)

if __name__ == "__main__":
    register()

HTH

hey thanks for the code, but what does it search?  The list is empty.