Search Unity

Physics Obi Particle Based Physics (Cloth, Rope, Fluid) thread

Discussion in 'Tools In Progress' started by arkano22, Jun 30, 2015.

?

Performance vs compatibility

Poll closed Oct 9, 2015.
  1. I don't care about performance, keep my data intact please.

    0 vote(s)
    0.0%
  2. I don't care if I have to re-do some stuff, as long as it runs faster.

    14 vote(s)
    100.0%
  1. macdude2

    macdude2

    Joined:
    Sep 22, 2010
    Posts:
    686
    Ok, makes sense, your system doesn't use vertlet integration I don't think, correct? Also, how do you collision against mesh colliders? You don't check every particle against every triangle do you?
     
  2. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    1,929
    Hi macdude2,

    Yes, my system uses something equivalent to verlet integration.

    I simply do not support mesh colliders for that exact reason. The previous version did however support distance fields, which serve the same purpose but are extremely fast since the penetration test reduces to comparing two floats. I will get them back asap, as they got lost in the C#->C++ transition.

    cheers!
     
  3. macdude2

    macdude2

    Joined:
    Sep 22, 2010
    Posts:
    686
    Awesome, well let me know if that happens and if your system allows for pulleys that can support ~20kg. Thanks a ton!
     
  4. hjq_luffy

    hjq_luffy

    Joined:
    Dec 28, 2015
    Posts:
    2
    I just buy the asset from the store for our project. I have some questions need your help.
    Can obi simulation the deformation of soft tissue?
    How do it set fix points by script? Can you show me the interface?
     
  5. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    1,929
    Hi luffy,

    Obi can simulate soft bodies to an extent in its current state. Things like balloons are no problem, stiffer materials like rubber or living tissue (muscles, internal organs) for example are not achievable. These kind of materials are best simulated using tetrahedral (volumetric) meshes, which are not directly supported by Unity.

    You can fix particles by setting their inverse mass to zero. The ObiCloth component has a invMass array containing the masses of all particles in the cloth, you just have to iterate that array setting zeroes where needed. Here's the api docs.
     
  6. hjq_luffy

    hjq_luffy

    Joined:
    Dec 28, 2015
    Posts:
    2
    Thank you for your answers. I will try to set the invMass.
     
  7. Sabathius

    Sabathius

    Joined:
    Jul 13, 2013
    Posts:
    55
    I'm inquiring about your ObiRope software.

    I need to create the rubber-band part of a slingshot. Would your tool be a good solution for that?

    Thank you in advance!
     
  8. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    1,929
    Hi Sabathius,

    Yes, it would be perfect for that. However it is not yet out, it should be in a couple weeks.

    cheers!
     
    Sabathius likes this.
  9. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    1,929
    Obi 2.0.1 came out yesterday.

    It seems the Windows bug has finally been ironed out, the only thing I did was using std::condition_variable_any instead of std::condition_variable when signaling threads. According to the C++11 documentation, they should behave exactly the same, with the exception that std::condition_variable is specially tailored for mutexes and thus it is marginally faster. Go figure.

    Anyhow, please report back any problems you find with the new version.

    You´ve got the manual here and the API docs here. Both of them are regularly updated with any new changes introduced in Obi.

    cheers!
     
    hopeful likes this.
  10. Sabathius

    Sabathius

    Joined:
    Jul 13, 2013
    Posts:
    55
    Sweet. I'll be on that like white on rice.
     
  11. ArmandTutu

    ArmandTutu

    Joined:
    Aug 7, 2014
    Posts:
    2
    Hi Arkano22,

    Great works on the Obi 2.0 ;)
    Did you know when the Android version will be available ?

    Thanks by advance !
     
  12. rozwellramirez

    rozwellramirez

    Joined:
    Mar 15, 2013
    Posts:
    3
    Hi I started using this plug in today, The TearableCloth scene crashes unity, I've read the quick start and moved both the gizmo and default resource folders to my assets folder. however I get this error when trying to press the edit particles button.

    IndexOutOfRangeException: Array index is out of range.
    Obi.ObiClothEditor.IsParticleFacingCamera (UnityEngine.Camera cam, Int32 particleIndex) (at Assets/Obi/Editor/ObiClothEditor.cs:102)
    Obi.ObiClothEditor.UpdateParticleEditorInformation () (at Assets/Obi/Editor/ObiClothEditor.cs:88)
    Obi.ObiParticleActorEditor.OnSceneGUI () (at Assets/Obi/Editor/ObiParticleActorEditor.cs:188)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:232)
    System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MethodBase.cs:115)
    UnityEditor.SceneView.CallOnSceneGUI () (at C:/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:2056)
    UnityEditor.SceneView.HandleSelectionAndOnSceneGUI () (at C:/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:1405)
    UnityEditor.SceneView.OnGUI () (at C:/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:1242)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
     
  13. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    1,929
    Hi plasmid,

    That looks like a bug. I´ll take a look at it and provide a fix asap. Does it happens if you edit particles outside of play mode? It looks like the editor arrays are not getting correctly updated when the cloth tears, as new particles are dynamically added.

    thanks!
     
  14. rozwellramirez

    rozwellramirez

    Joined:
    Mar 15, 2013
    Posts:
    3
    Yes that's when it happens outside of play.


    One other thing I noticed, and maybe its just an error created by me, but when I apply the obi cloth to a skin renderer(character) and attempt to simulate it, the mesh shrinks much smaller then its original form.
     
    Last edited: Mar 4, 2016
  15. VargaPD

    VargaPD

    Joined:
    Mar 6, 2015
    Posts:
    64
    I have experienced something like that earlier. In my case, it turned out, that some of my components' scale was different to the others. I hope this helps you.
     
    arkano22 likes this.
  16. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    1,929
    Yes, that is likely to be caused by non-uniform scaling. Make sure your scale is <1,1,1>. Keep in mind that scaling a cloth object does not automatically scale the length of the distance constraints holding particles together, so the cloth will shrink/expand.

    You could write an script iterating trough all distance constraints scaling their length to match the transform's scale, but that would be overkill in most cases. Ensuring correct scale of your imported assets is important here.

    *More technical explanation* ---> Particles are simulated in world space for efficiency and to make inter-collisions possible. Having particles simulated in their host object space would allow scale to affect the shape of the cloth, as in pre-2.0 Obi. However when you want particles to interact with each other and their values are expressed in different spaces, you have to convert data to/from one space to the other. That's a lot of matrix multiplications per frame, and it gets worse if you have lots of particles. So for the sake of speed, local-space simulation was replaced by world-space simulation in Obi 2.0. That's why scale affects the cloth pre-2.0, but doesn´t in 2.x.
     
    Last edited: Mar 5, 2016
  17. Arkensis

    Arkensis

    Joined:
    Jan 27, 2013
    Posts:
    13
    I have encountered a problem which causes Unity to freeze and consume loads of memory, eventually fully freezing the computer. It seems to happen when cloth particles end up inside a collider (I'm using capules), or when a collider is disabled. I'm using version 2.0.1.
     
  18. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    1,929
    Hi Arkensis,

    I´ll take a look into it. If you can provide a consistently failing example it would be great (as in: every time you run this scene, Unity freezes).

    cheers!
     
  19. jgilbert

    jgilbert

    Joined:
    Aug 20, 2014
    Posts:
    10
    I know you mentioned that you would eventually add support for Linux. Do you know what kind of time period that would be? I'd like to try using this for our project, but we would need it to work on Linux before making the move. Or at least know that it would be supported Soon(tm).
     
  20. fleischverpackung

    fleischverpackung

    Joined:
    Feb 23, 2016
    Posts:
    18
    Hi there,

    I have Unity 5.3.2f1 personal and Obi Cloth 2.0.1 and am unable to enter particle edit mode.
    When I press the button nothing happens, then I click into the SceneView and it gets black.
    I have to exit particle edit mode to see the scene again.

    Also testscenes like ClothRiogidbodyInteraction, Friction and
    TearableCloth crash Unity so hard I have to kill the process via taskmanager.
    Some others do work.

    And another question:
    Is it possible to translate and move particle constraints via script?

    Thanks
     
  21. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    1,929
    Hi
    Hi Fleischverpackung (man, that was difficult to get right ;))

    Some other user contacted me with this same issue a few days ago. For the particle edit mode, make sure you have properly installed Obi (you need to move a couple folders around, see QuickstartGuide.pdf). For the crash, try to replace the /Obi/Plugins folder with the one I´m attaching. There's a pesky issue in windows that persists in some computers, only when calculating collisions. That's why some scenes work and others don't. This new plugin folder should fix it.

    Yes, it is possible to translate, fix, and change any per-particle property via script. Just access the ObiCloth component, and modify the positions/velocities/invMass/ etc as you wish, then use PushDataToSolver with the appropriate flags to commit any changes you´ve made to the arrays.

    You have the API docs here. ObiActor is the class you´re looking for, as it contains most of the ObiCloth functionality.
    http://www.josemariamendez.com/obi/docs/class_obi_1_1_obi_actor.html
     

    Attached Files:

  22. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    1,929
    Hi jgilbert,

    Yes, Linux support will be there eventually. But first, i´d like to have everything running as smooth as silk in the current platforms (there are still some issues being ironed out, and slight architectural changes being made), then Android support has preference, and finally Linux.

    If I had to give you a time estimate, I´d say no less than four months. I doubt you´ll consider that Soon(tm) :(. Sorry about that...
     
  23. Duende

    Duende

    Joined:
    Oct 11, 2014
    Posts:
    200
  24. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    1,929
    Hi Duende,

    Yes you can do this (and in a much more efficient way) with Obi. However it will require some more work on your side, as you´ll have to set-up the simulation for each plant and save them as prefabs. That asset you describe seems to provide the prefabs already set up. Obi only provides the simulation framework.

    However no scripting is necessary. It's just a matter of generating a topology asset for each plant mesh, and then setting up solver parameters for each one.

    cheers!
     
    Sabathius likes this.
  25. Duende

    Duende

    Joined:
    Oct 11, 2014
    Posts:
    200
    Ok, thank you very much. Right now I am not implementing the vegetation in my game, but when I do I'll take a look at your asset. :)
     
  26. troyjohnsen

    troyjohnsen

    Joined:
    Mar 30, 2016
    Posts:
    1
    Any chance you'll be supporting PS4 in the future?
     
  27. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    1,929
    Hi Troy,

    I´d like to, but right now I have zero experience with PS4. I don´t even know if native plugins are fully supported for PS4, since i´ve been looking for documentation on this (you´re not the first to ask ;)) and found none.

    I´m trying to get a grasp of how to compile for PS4 using their SDK, but it will take some time.

    So the answer is yes, the intention is there, but not in the near future.
     
  28. VargaPD

    VargaPD

    Joined:
    Mar 6, 2015
    Posts:
    64
    I have some questions again (sorry ^^)

    1: Is it possible to scale simple meshes (I want to use them as proxies for hair)? How?
    2: Is it still in plan to make skinned meshes available as proxies?
    3: Will mesh colliders come back in the future?
     
  29. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    1,929
    Hi Varga,

    1.- Do you want to scale the simulated mesh, or the "visual "mesh? It´s not entirely clear to me...
    2.- Yes, it is still planned.
    3.- If you mean distance field colliders (which are their equivalent) yes, in fact I´ve started writing them.
     
  30. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    1,929
    I´ve added a small tutorial to the manual, going over how to set up interactive theater-style curtains in Obi:

    Curtains tutorial

    It might prove useful for some of you, as it makes use of a nice trick involving cloth scaling to open/close the curtains. I want to add more common use-case tutorials to the manual, I´m open to suggestions.

    On the other hand, Obi 2.0.2 is almost finished. Features:
    • Bug fixes. Bug fixes everywhere. Squashed a specially nasty bug that caused a 1-frame delay when using skinned cloth with mecanim animation and "apply root motion" enabled.
    • Moved mesh updating and tangent space recalculation to the C++ side. This gives a pretty neat performance boost. However you will have to re-generate your existing topology assets and reinitialize your ObiCloth components.
    • Added a ParticleBaker component. This allows you to bake any simulation, and then play it back (forward, backward, in slow motion, whatever) at very little cost, just like a video. Useful for cut-scenes with non-interactive high res simulations, or environment eye candy you don´t want to spend performance on. You cannot export the baked caches, but that might be possible in the future.
    • Added collision callbacks. Now you can get per-particle collision information: position, normal, tangent and normal impulses. This allows you to do stuff in response to cloth collisions with the environment.
     
    VargaPD and hopeful like this.
  31. VargaPD

    VargaPD

    Joined:
    Mar 6, 2015
    Posts:
    64
    I have a hair mesh, and a simple plane mesh. I wanted to use the plane as the proxy, but I can't scale it down, because the world-space simulation. Or is there a way to shrink a simple mesh down, without scaling it?
     
  32. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    1,929
    Hi Varga,

    There's a "scale" property in the Topology assets, that you can use to generate the topology in any size you want. You don´t need to adjust the cloth transform scale, modifying the topology scale is enough.

    Make sure you re-generate the topology and re-initialize the cloth after changing the scale. That will set correct initial particle positions in world-space and correct distance constraint lengths.

    cheers!
     
  33. VargaPD

    VargaPD

    Joined:
    Mar 6, 2015
    Posts:
    64
    Thank you for your help. I'll try it after work. And the new features are sound awesome!
     
  34. Minsc

    Minsc

    Joined:
    Dec 30, 2013
    Posts:
    39
    Hi Arkano,

    Great job for the improvements! Do you know the release date for Obi Fluid? I am needing a good fluid simulator for my game for goo and slimes, but there are no physx flex like addons in Unity ^^'
     
  35. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    1,929
    HI Minsc!

    I´m glad you like the continued improvements :). I´m still working in ObiFluid, in fact right now I´m adding vortex particle methods to simulate wispy fluids like cigarette smoke or ink in water, that kind of stuff. However as always I will wait until it works reasonably fast and stable in all supported platforms, which can take a while. So I can only say it will be available when it's finished (tm).

    If you need to start your game right now, try another fluid simulators (I suggest Fluvio).
     
    Minsc and hopeful like this.
  36. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    1,929
    Just to keep you up to date on what's going on:

    - While working on ObiRope (still getting it ready for debut, sorry guys :oops:), I´ve made TONS of improvements to the collision detection broad phase. Obi Cloth will also benefit from this, expect collisions to be about x3 faster in the next update.

    - The improvements in collision detection have also allowed Obi to work with particles of very different sizes together, while keeping collision and self-collision performance very high (something that Flex, for instance, can´t do). No need to tune the "interaction radius" now. This will come in handy when simulating granular materials, fluids, rigid bodies, and other stuff in which a fixed particle size is a waste of resources.

    - Added VPM (vortex particle method) to ObiFluid. This allows to advect thousands of fluid particles in realtime, using only a few particles to carry the simulation. Very early test running at +60 FPS in CPU, single thread, 4000 shuriken particles driven by just 8 vortex particles (the thick ones):



    cheers!
     
    Minsc, Seith and hopeful like this.
  37. MengooUnity

    MengooUnity

    Joined:
    Apr 27, 2016
    Posts:
    3
    upload_2016-4-27_14-1-1.png
    Hi Arkano!
    How should I do to greate the red point by Obj Cloth?It likes the cloth attach to an object.
     
  38. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    1,929
    Hi wmqxhn!

    Do you mean how do you create a pin constraint? (In recent versions the dot is cyan instead of red, btw)

    - Select your ObiCloth and enter Edit Particle mode.
    - Select the particle(s) you want to pin.
    - Click on "Add Pin Constraint" in the inspector. A new pin constraint slot will be created.
    - Drag your collider to the slot.

    Also, make sure the collider has been added to the solver's ColliderGroup. You can read a more here.

    cheers!
     
    MengooUnity likes this.
  39. Baznor

    Baznor

    Joined:
    Apr 29, 2013
    Posts:
    6
    I'm getting crashes on windows when adding colliders to a ColliderGroup during runtime.
    Calling solver.colliderGroup.colliders.Add

    Works fine on OSX but crashes on Windows.
    Is there a correct time to add colliders or a function that needs to be called to do this?

    Also tried calling solver.UpdateParameters() and seem to get the same crash, threading issue maybe?
     
  40. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    1,929
    Hi Baznor,

    I´m aware of this, you're the third guy reporting the same problem in less than a week. :(
    It seems to have something to do with pinned memory and C# interop in windows. Also causes problems with il2cpp in iOS, but not when using Mono. Haven´t been able to reproduce it yet in OS X, so I suppose it is implementation-dependent. Next week I will hopefully have it fixed.

    Btw, you can add colliders at runtime at any time. UpdateParameters updates the solver parameters: gravity, constraint iterations/solver mode, etc. Nothing to do with colliders.

    cheers,
     
  41. wetcircuit

    wetcircuit

    Joined:
    Jul 17, 2012
    Posts:
    1,409
    Can I apply skin constraints to a "nude" figure (breasts, thighs), and use clothProxy to move the figure's clothing (separate mesh)?
     
  42. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    1,929
    Hi Wetcircuit,

    Cloth proxies do not support skinned meshes yet. However you can do what you need by adding skin constraints to both the nude figure and the figure's clothing (as long as they're skinned to the same skeleton) and set similar particle properties to both (skin radius, skin backstop).

    cheers!
     
    wetcircuit likes this.
  43. OCASM

    OCASM

    Joined:
    Jan 12, 2011
    Posts:
    328
    Is there support for localized wind sources? Like say, wind from a helicopter flying by or from the blast of an explosion.
     
  44. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    1,929
    Hi OCASM,

    No, there's no built-in support for that yet, however if you want to add your own it should be pretty easy. You can change the "wind" property of a cloth object based on anything you like: distance to another object, or position in the scene, for instance.

    If you are adventurous, there's support for per-particle wind so you can make it even more detailed. No need to have the same wind direction/strength for the whole cloth piece.

    cheers,
     
    OCASM likes this.
  45. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    1,929
    Hi everyone,

    Obi 2.1 is about to be released in a week or so. I´m doing the finishing touches and will upload it this weekend. This is the biggest update since 2.0, though you might not notice it at first sight:
    • Memory management has been completely revamped for efficiency and simplicity.
    • New hierarchical spatial partitioning structure, which allows particles of wildly different sizes to interact. Also, the collision broad phase is now much, much faster.
    • Enabled vectorization (SIMD instructions), thanks to a user that draw my attention over a slight caveat of the math library used by Obi, Eigen. This means most arithmetic operations are roughly x4 faster. Kudos for him ;)
    • Much better velocity damping, which is both unconditionally stable and easier to tune.
    • Multithreading spends less time in synchronization, which means faster parallel constraints.
    • Fixed compatibility issues with il2cpp, which pretty much made iOS deployment impossible.
    • Again, tons of bug fixes.
    As you can see most of the changes are internal. Nothing has really changed on the outside and no big new features have been added, yet I´m positive you will find this version to be more stable, reliable, and fast.

    On a side note, I´ve been working on fluids too, while trying to get cloth smooth and stable. Adhesion, cohesion, surface tension, atmospheric drag and particle advection are working flawlessly, and a release candidate is now in evaluation. In this video you can see:
    • A thick goopy liquid adhering to a sphere and dripping from its bottom in realtime (2000 particles @ 60 fps). No surface shading, only particles.
    • A gaseous fluid in 2D reacting to its environment (5000 particles @ 60 fps). Grid free and boundless simulation, which means the fluid and emitter can be moved anywhere. The solver uses a velocity-vorticity hybrid approach, and can drive any standard Shuriken particle system.
     
    Last edited: May 14, 2016
  46. VargaPD

    VargaPD

    Joined:
    Mar 6, 2015
    Posts:
    64

    Awesome fluids and awesome work you doing! I miss only the skinned mesh proxies, but I can do the other stuff in my project, till I start clothing (because I fear that I have to redo too much when a new version comes). Thank you :)
     
  47. Dalooshman

    Dalooshman

    Joined:
    Aug 3, 2015
    Posts:
    1
    Hi arkano,

    I am very excited about ObiCloth and am hoping to use it to create an interactive material cutting simulation. I purchased and imported ObiCloth 2.0.2, but seem to have some big issues running on Windows 10 and Unity 5.4. Basically, everything seems happy as long as there is only one collider in an ObiSolver's ObiColliderGroup. Anything above one collider holds up Windows and eventually crashes the computer. For example, running any Sample Scene that includes >1 collider in ObiColliderGroup will crash.

    Reading through this thread I saw that you seem to have addressed earlier problems of multi-threading on Windows via a single-threading plugin (I tried to replace my x86 plugin with that one but it crashes on opening Unity) and release 2.0.1. Is it possible this is a new bug or is there an earlier bugfix that I missed?

    thanks!
     
  48. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    1,929
    HI Dalooshman,

    This is a known bug that is fixed in 2.1, not yet out. Write to the support email (you´ll find it in the quickstart guide) and I´ll gladly send it to you.

    cheers!
     
  49. pauldrummond

    pauldrummond

    Joined:
    Oct 30, 2014
    Posts:
    145
    I just started using Obi but am stuck because I don't see the particle editor when I use the 'edit particles' button. How do I select/deselect particles? I guess I could manually click on each particle, but that would be hard work!
    I'm using Unity 5.4b18 on OS X.
     
    Last edited: May 20, 2016
  50. arkano22

    arkano22

    Joined:
    Sep 20, 2012
    Posts:
    1,929
    Hi Paul,

    Make sure you follow the steps in QuickstartGuide.pdf , as there are two possible reasons for what you describe:
    1.- You haven´t actually installed Obi, and the resources for the editor UI, particle drawing, etc are not found.
    2.- You haven´t initialized the cloth (generated the topology, added it, pressed "Initialize") and thus there are no particles to edit.

    Abou particle selection, you have lots of selection tools: select all, select only the fixed ones, invert selection, brush selection mode... and if everything else fails, one-by-one selection is also possible of course ;)

    If you did both and still cannot enter particle edit mode, let me know!

    cheers, :)