Jump to content

Wooshum

Members
  • Content count

    63
  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won

    5

Wooshum last won the day on May 23

Wooshum had the most liked content!

Community Reputation

52 Excellent

About Wooshum

  • Rank
    Peon

Personal Information

  • Name
    Dan
  • Location
    Melbourne, Australia
  1. FIND NEIGHBORS OF PRIMS HOUDINI

    The number of neigbouring primitives returned is dependent on the number of edges each primitive (as in face/polygon) shares with another primitive. So in your example a Dodecahedron will return 5 neighbours per prim as each face has 5 shared edges. If you start with a Icosahedron you will return 3 neighbours per prim, etc. Primitives in houdini are n-sided polygons so can have any number of shared edges.
  2. FIND NEIGHBORS OF PRIMS HOUDINI

    Are you operating on primitives instead of points? Have attached an example hip. prim_neighbours.hiplc
  3. FIND NEIGHBORS OF PRIMS HOUDINI

    Looks like you were on the right track with the use of half edges. You could approach the problem using a primitive wrangle as follows: // Array of neighbouring prims int prim_neighbours[]; // Loop through the primitives vertices foreach (int vtx; primvertices(0, @primnum)) { // Get the forward half edge for the vertex int this_hedge = vertexhedge(0, vtx); // Only process if a valid half edge if (hedge_isvalid(0, this_hedge)) { int equiv_hedge = this_hedge; // Loop through equivalent half edges and get the neighbouring prims do { equiv_hedge = hedge_nextequiv(0, equiv_hedge); if (equiv_hedge != this_hedge) { // !! Get your attribues here !! push(prim_neighbours, hedge_prim(0, equiv_hedge)); } } while (equiv_hedge != this_hedge); } } i[]@neighbours = prim_neighbours;
  4. Houdini 17 Wishlist

    Just wanted to add another research paper to bump up the argument for a weighted straight skeleton implementation. http://peterwonka.net/Publications/pdfs/2011.TOG.Kelly.ProceduralExtrusions.TechreportVersion.final.pdf Covers the process that Tom Kelly and Peter Wonka developed for procedural extrusions using input guide curves:
  5. Immersive Linear Algebra

    Linear algebra book online with interactive examples: http://immersivemath.com/ila/ Haven't gone through the lot but looks helpful.
  6. Create HDA using python

    This is the way I have done it in the past when creating a digital asset from a shelf tool: # Create new digital using OBJ subnet as a base temp_node = hou.node("/obj").createNode("subnet") # Create new digital asset from temp node hda_node = temp_node.createDigitalAsset( name = hda_name, hda_file_name = hdalib_directory + hda_name, description = "DESCRIPTION", min_num_inputs = 0, max_num_inputs = 0, ) hda_node.setName("NAME") # Get HDA definition hda_def = hda_node.type().definition() # -------------------------------------------- # Do whatever you need to do with the HDA here # i.e. Creation, copying and organisation of children: hou.moveNodesTo(tuple(other_premade_node), hda_node) hda_node.layoutChildren() # ------------------------------------------- # Update and save new HDA hda_options = hda_def.options() hda_options.setSaveInitialParmsAndContents(True) hda_def.setOptions(hda_options) hda_def.save(hda_def.libraryFilePath(), hda_node, hda_options)
  7. Houdini for Mathematicians

    I am not sure if this has been posted before but just came across this site: http://wordpress.discretization.de/houdini/ To quote: "This website is here to help you to get started with Houdini in order to complete the Mathematical Visualization course at the Technical University of Berlin. The aim is to enable you to run your own geometry related algorithms while taking advantage of Houdini’s excellent visual graphics while avoiding to dig deep into the theory behind it." There seems to be some great material on here. In particular a unique way of getting scipy/numpy to work with Houdini - apparently you just copy and paste the entire anaconda 2.7 build into the Houdini python directory?! http://wordpress.discretization.de/houdini/home/advanced-2/installing-and-using-scipy-in-houdini/
  8. Prefered Node Color scheme

    Genius, many giggles
  9. Houdini 17 Wishlist

    A full implementation of a weighted straight skeleton operation similar to the one developed by Tom Kelly: https://github.com/twak/campskeleton http://theses.gla.ac.uk/4975/ Roofs, procedural building models, etc. At a SOP level this would be epic, PolyExpand2D with way more functionality
  10. GeoJSON Importer

    Hi All, If you need to work with Geo-Spatial data on a regular basis like I do, you might be interested in the GeoJSON Importer (SOP HDA) that I have started developing. You can grab it from here: https://github.com/danleesmith/HOU_GeoTools Some basic Info on the Importer: Houdini Geographic Tools Custom Python GeoJSON importer Digital Asset for Houdini (HDA). This importer reads GeoJSON files only. GeoJSON is quickly becoming the standard geo-spatial interchange format and can store point, line and polygonal features with associated attributes. The GeoJSON standard can be found here: http://geojson.org/ Limitations This importer only works with projected coordinate systems. An explanation of the difference between projected and geographic coordinate systems can be found here: http://tech.ced.uga.edu/kb/articles/difference-beteween-projected-and-geographic-coordinate-system The importer also requires that any NULL or EMPTY attributes, which are allowable in many GIS systems, are mapped to -9999. This will ensure that when the attributes are written in Houdini they can be stored as either 0 for numbers and '' for strings. NOTE: Polygon/Primitive Holes (known as donuts in GIS) have not been implemented in the importer at this stage. Data Prep To prepare you data and convert your spatial files to GeoJSON I recommend using QGIS: http://www.qgis.org/en/site/ OR if you can get your hands on a licence give FME a go: http://www.safe.com/ Usage This HDA is a SOP based asset. 'GeoJSON File channel' is used to point to the desired GeoJSON File for importing. If you want to import many GeoJSON files in the right location relative to each other just drop down a new Import GeoJSON node, toggle on 'Use Reference Features' and point the 'Reference Features' channel to the desired Import GeoJSON node. The attached images show the Importer in action. I hope you find this useful and please send through any suggestions you have!
  11. Differential curve growth

    Hi All, Just wanted to share my explorations on this theme. This thread has given me the push to explore a couple of coral growth papers I have been interested in for quite a white, particularly this one: http://www.sciencedirect.com/science/article/pii/S0022519304000761 After playing around with some of the setups on this thread I built a solver based that is a bit of a mutant space colonization system - in that the coral grows towards a food source. This means you can drive the simulation to fill objects and makes it controllable from an artistic perspective. I have attached the HIP if anyone wants to play. Dan. HOU_CoralGrowth_v1.hipnc
  12. Thanks for that Alex. Looks like Houdini 15.5 is bundled with Python 2.7.5 (October 2015) - will install as the system version and give it a go.
  13. Hi All, When using external python modules from a python operator I usually use: import sys pyModPath = node.parm('pyModPath').eval() sys.path.append(pyModPath) This works perfectly for pure python modules but I am having issues with modules that require compiled external dependencies, in particular i am needing to use the pyproj module: https://pypi.python.org/pypi/pyproj? I have tried using a precompiled python wheel when installing through PIP but it still throws an error that the DLL could not be found in HOU (have double checked that I am using and installing for 64bit). I am typically installing the pip modules in the root Python27 folder and linking to the 'Lib\site-packages' folder in that directory (for pyre python I can link to modules anywhere). Unfortunately I am stuck using Windows at the moment. As a note: when using the pyproj module outside of Houdini (through the command line) it works fine. Does anyone have any tips / suggestions how to get these compiled modules functioning within HOU?
  14. Selective Edge Offsets & Procedural Edge Groups

    @f1480187 thank you for your solution - much more elegant than where I was heading with this! I was playing around with PolyExpand2D earlier on but got sidetracked with a VEX implementation! Quick question regarding PolyExpand2D: In the cases that the 'offsetscale' attribute is 0 how can I ensure that the actual offset is 0? For the offset value I have tried the expression if(ch("localinsidescale") == 0, 0, 1) but this does not seem to work in this instance.
  15. Hi All, I am taking small steps at rebuilding and improving upon some of the functionality of ESRI CityEngine within Houdini. One of the most important functions is the ability to apply 'planning setbacks' to property boundaries (see image below). From a modeling point of view this requires the ability to offset the poly from selective edges only and a way of keeping track of what each edge of the poly represents, i.e.: is the edge a street, side or rear frontage? I have been able to work out a method off applying the selective edge offsets using VEX (see attached ZIP that includes HIP and BGEO) but am struggling to find the best method of defining the edge types in a procedural way. Given this problem does anyone have suggestions for the following: Is there a way of being able to track poly edge groups in the event of the point numbers changing (points being added or removed)? Is there a way / work around to be able to procedurally defining edge groups? One of the areas most of this work is pushing me towards is the application of poly straight skeletons which is a bit daunting at the moment! I have found a really good thesis on poly skeletons here though: http://theses.gla.ac.uk/4975/ Thanks for any help you can provide! Cheers! Lot_Setbacks_Problem.zip
×