Jump to content

Librarian

Members
  • Content count

    352
  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won

    17

Everything posted by Librarian

  1. modeling a cell (beginner)

    no problemos
  2. modeling a cell (beginner)

    @typerhack in what way ? share Please
  3. I have fun with tutorials and files from . Just having fun. https://github.com/CppCon/CppCon2018/blob/master/Presentations/better_cpp_using_machine_learning_on_large_projects/better_cpp_using_machine_learning_on_large_projects__nicolas_fleury_mathieu_nayrolles__cppcon_2018.pdf https://pytorch.org/tutorials/intermediate/spatial_transformer_tutorial.html https://www.sidefx.com/forum/topic/60175/?page=1#post-269123 https://github.com/pedohorse
  4. Installing Qlib Package method

    on Houdini 16.5 I have this ENV works perfectos # HOUDINI_NO_SPLASH = 1 HOUDINI_OGL_SOFTWARE = 1 HOUDINI_PATH = F:/GameDevelopmentToolset-Development;& QLIB = C:/Users/user/Documents/houdini16.5/qLib-dev VISUAL = "C:\Program Files\Sublime Text 3\subl.exe" HOUDINI_GALLERY_PATH = &;$QLIB/gallery HOUDINI_OTLSCAN_PATH = &;$QLIB/otls/base;$QLIB/otls/future;$QLIB/otls/experimental HOUDINI_TOOLBAR_PATH = &;$QLIB/toolbar HOUDINI_PATH = C:/Users/user/Documents/houdini16.5/MyExtraToolSet; & HOUDINI_OCL_DEVICETYPE=CPU HOUDINI_SPLASH_FILE = C:/mySuns.jpg -------------------------- *MyExtraToolSet just for everything else*
  5. distribute edges on circle

    I have Mega Exampel ... for education. #define TAU 6.283185307179586 #define PI 3.141592653589793 addpointattrib(geoself(), "ring_id", -1); addpointattrib(geoself(), "seg_id", -10); void segment(int res_lon; float start_theta; float end_theta; int res_lat; float start_phi; float end_phi; float r_min; float r_max; int ring_id; int seg_id) { string poly_type = chs("poly_type"); float theta_step = (end_theta - start_theta) / (res_lon - 1); float phi_step = (end_phi - start_phi) / (res_lat - 1); int pt; // Keep track of last created point. // Inner surface. for (int i = 0; i < res_lat ; i++) { for (int j = 0; j < res_lon; j++) { // Calculate longitude arc point position. float theta = start_theta + theta_step * j; float phi = start_phi + phi_step * i; matrix r = ident(); vector pos = set(cos(theta), 0, sin(theta)) * r_min; vector axis = cross(normalize(pos), {0, 1, 0}); rotate(r, phi, axis); pt = addpoint(geoself(), pos * r); setpointattrib(geoself(), "ring_id", pt, ring_id, "set"); setpointattrib(geoself(), "seg_id", pt, seg_id, "set"); if (i > 0 && j > 0) { // Create a new quad. int prim = addprim(geoself(), poly_type); addvertex(geoself(), prim, pt - res_lon); addvertex(geoself(), prim, pt - res_lon - 1); addvertex(geoself(), prim, pt - 1); addvertex(geoself(), prim, pt); } } } // Outer surface. Same except r_max used and reversed vertex order. for (int i = 0; i < res_lat ; i++) { for (int j = 0; j < res_lon; j++) { // Calculate longitude arc point position. float theta = start_theta + theta_step * j; float phi = start_phi + phi_step * i; matrix r = ident(); vector pos = set(cos(theta), 0, sin(theta)) * r_max; vector axis = cross(normalize(pos), {0, 1, 0}); rotate(r, phi, axis); pt = addpoint(geoself(), pos * r); setpointattrib(geoself(), "ring_id", pt, ring_id, "set"); setpointattrib(geoself(), "seg_id", pt, seg_id, "set"); if (i > 0 && j > 0) { // Create a new quad (reverse vertex order). int prim = addprim(geoself(), poly_type); addvertex(geoself(), prim, pt); addvertex(geoself(), prim, pt - 1); addvertex(geoself(), prim, pt - res_lon - 1); addvertex(geoself(), prim, pt - res_lon); } } } // Side surfaces. for (int i = 1; i < res_lon; i++) { int prim; int surface_ptnum = res_lon * res_lat; int start_pt = i + pt - surface_ptnum - surface_ptnum + 1; // Bottom. prim = addprim(geoself(), poly_type); addvertex(geoself(), prim, start_pt - 1); addvertex(geoself(), prim, start_pt); addvertex(geoself(), prim, start_pt + surface_ptnum); addvertex(geoself(), prim, start_pt - 1 + surface_ptnum); // Top. prim = addprim(geoself(), poly_type); addvertex(geoself(), prim, start_pt + surface_ptnum - res_lon); addvertex(geoself(), prim, start_pt - 1 + surface_ptnum - res_lon); addvertex(geoself(), prim, start_pt - 1 + surface_ptnum + surface_ptnum - res_lon); addvertex(geoself(), prim, start_pt + surface_ptnum + surface_ptnum - res_lon); } for (int i = 1; i < res_lat; i++) { int prim; int surface_ptnum = res_lon * res_lat; int start_pt = i * res_lon + pt - surface_ptnum - surface_ptnum + 1; // Side A. prim = addprim(geoself(), poly_type); addvertex(geoself(), prim, start_pt); addvertex(geoself(), prim, start_pt - res_lon); addvertex(geoself(), prim, start_pt - res_lon + surface_ptnum); addvertex(geoself(), prim, start_pt + surface_ptnum); // Side B. prim = addprim(geoself(), poly_type); addvertex(geoself(), prim, start_pt - 1); addvertex(geoself(), prim, start_pt - 1 + res_lon); addvertex(geoself(), prim, start_pt - 1 + res_lon + surface_ptnum); addvertex(geoself(), prim, start_pt - 1 + surface_ptnum); } } // RING FUNCTION void ring(float min_arc; float max_arc; float h_min; float h_max; float r_min; float r_max; float skip_chance; int ring_id; float ring_seed; int num_rings; float frame){ float fixed_res = chi("fixed_res"); float step_lon = ch("step_lon")+10000*fixed_res; // Longitude resolution in meters. float step_lat = ch("step_lat")+10000*fixed_res; // Latitude resolution in meters. float theta = 0; float in_theta = 0; // ch("test_theta_step"); //start_theta float out_theta = theta + TAU; float arc_width; float arc_sep_min = radians(ch("arc_sep1")); float arc_sep_max = radians(ch("arc_sep2")); float phi = 0; float arc_h; float freq_min = ch("freq1"); //height change frequency float freq_max = ch("freq2"); float sfreq_min = ch("sfreq1"); //spin frequency float sfreq_max = ch("sfreq2"); float amp_min = ch("amp1"); float amp_max = ch("amp2"); //int seg_num = npoints(geoself()); // /(res_lon+1*res_lat+1) int seg_id = 0; float f = frame; //ch("t"); //time frame //ring logic while (1) { //seeds and mapping float seed = seg_id + ring_seed; float seed_big = fit(rand(seed+2153.5),0,1, 0, 50000); float nr_max = fit(rand(r_max), 0, 1, 0.2, 1); float ring_idf = fit(ring_id, 0, num_rings, 0, 1); arc_width = fit(rand(seed+223),0,1, min_arc, max_arc); float arc_sep = fit(rand(seed+536),0,1, arc_sep_min, arc_sep_max); // check end of circle doesn't overlap begin if (theta+arc_width >= TAU-arc_sep){ arc_width = TAU-theta-arc_sep*nr_max; // } //noise fx for height float freq = chramp("freq_ramp", rand(seed_big+8+ring_idf)); freq = fit(freq,0,1, freq_min, freq_max); float sample = (f/2)*freq; float noise = noise(sample); //height arc_h = fit(noise,0.3,1,h_min,h_max); float m = arc_h*ch("mirror"); //mirror below xz plane //noise fx for rotation int crazy_spin = chi("crazy_spin"); //crazy_spinning is seeded per segment, this causes segments overlapping float sfreq = chramp("spin_ramp", ring_idf+rand(seed_big+0.5)*crazy_spin); //spin frequency ramped on ring id sfreq = fit(sfreq,0,1, sfreq_min, sfreq_max); float sample1 = f*sfreq; float noise1 = noise(sample1); float spin_rnd = fit(noise1,0.3,1,0,1); //trig fx for rotation float spin_trig = sin(sample1); spin_trig = fit(spin_trig,-1,1,0,1); //regular rotation float spin_reg = f*sfreq; //in this case sfreq is the slope of the linear curve //rotation float amp = fit(rand(ring_seed+1.25),0,1,amp_min,amp_max); int spin_dir = (rand(ring_seed+11) > 0.5) ? 1 : -1; amp *= spin_dir; //clock and counterclock turn float w; int spin_type = chi("spin_type"); if (spin_type == 0){ w = amp*spin_reg/5; // /5 is for keeping rotational speed similar to other types } if (spin_type == 1){ w = amp*spin_rnd; } if (spin_type == 2){ w = amp*spin_trig; } in_theta = w+amp; //+amp gives a in_theta offset foreach ring even when rotation is disabled // Proportional longitude resolution. float arc_width_length = r_max * radians(arc_width)*10; int res_lon = max((int) (arc_width_length / step_lon), chi("min_res1")); // Proportional longitude resolution. float arc_h_length = r_max * radians(arc_h)*10; int planar = chi("planar"); //flat rings int res_lat = max((int) (arc_h_length / step_lat), chi("min_res2"))*(1-planar)+planar; //creation if (rand(seed+1563.9) > skip_chance ) { segment(res_lon, in_theta+theta, in_theta+theta+arc_width, res_lat, phi-m, phi+arc_h, r_min, r_max, ring_id, seg_id); } theta += arc_width+arc_sep; // arc separation seg_id +=1 ; if (theta>= out_theta) break; } } float min_arc = radians(ch("arc1")); float max_arc = radians(ch("arc2")); float min_h = radians(ch("height1")); float max_h = radians(ch("height2")); float r_min = ch("r1"); float r_max = ch("r2"); float skip_chance = ch("skip_chance"); //chance to make a hole in ring float frame = @Frame; // ENTIRE RING SYSTEM int num_rings = chi("ring_count"); float ring_seed = ch("seed_ring"); float r_depth_min = ch("r_depth1"); float r_depth_max = ch("r_depth2"); float r_depth_seed = ch("r_depth_seed"); float off_min = ch("ring_off1"); float off_max = ch("ring_off2"); float r_off_seed = ch("ring_off_seed"); for (int i=0; i<num_rings; i++) { float r_depth = fit(rand(i+r_depth_seed+222),0,1,r_depth_min,r_depth_max); float r_off = fit(rand(i+r_off_seed+.5),0,1,off_min,off_max); ring(min_arc, max_arc, min_h, max_h, r_min, r_max, skip_chance, i, ring_seed, num_rings, frame); r_min = r_max+r_off; r_max = r_min+r_depth; ring_seed *=1.235684; }
  6. Nature fun

  7. Snowflake

    When you have time, share some snowflakes .. why not .. have fun pufko.rar
  8. Velocity Volume To 8bit RGB Image Slices?

    cop_volume_slice_attempt4.hipnc
  9. Velocity Volume To 8bit RGB Image Slices?

    or cop_volume_slice.hip
  10. If Touchdesigner Can Houdini can to.. Buy the book of Andrew Lowell. 144 chops exp inside rar file you gonna find an example. https://www.sidefx.com/forum/topic/61665/?page=1#post-287264 https://gist.github.com/howiemnet/280d937d3507950a62b516dd93dcae38 https://simonfarussell.com/Audio-Geometry-Exploration-1
  11. Ola @flcc here you gonna find I think some fun stuff ...file to learn triggers and how ? you know Vex so I think its easily manageable to convert attributs . plus some things to Know if not Ready trig.hipnc
  12. [SOLVED] Polylines from near points

    Just play with 1 inp and 2 inp on Wrangle ( code found here on Odforce). int drawLine(vector f; vector t){ int base=addpoint(0,f); int to=addpoint(0,t); int line=addprim(0,"polyline",base,to); return line; } //----------------------------- int read=0; if(npoints(1)>0){ read=1; } int maxLines=chi("maxLineCount"); float minLen=chf("minLineLength"); int pts[]=pcfind(read,"P",v@P,chf("maxLineLength"),chi("maxFindCount")); int randomConnect=chi("randomConnect"); int keepPointCount=min(1, max(0,chi("keepPointCount"))); int runner=0; vector curPos; int pt; if(randomConnect == 0){ for(int x=0; x<len(pts);++x){ pt=pts[x]; if(runner > maxLines){ break; } curPos=attrib(read,"point", "P", pt); if(length(curPos-v@P)>minLen && (@ptnum<pt || read)){ if(keepPointCount){ int to=pt; if(read){ to=addpoint(0,curPos); } addprim(0,"polyline",@ptnum,to); }else{ drawLine(v@P,curPos); } runner++; } } }else{ int l=len(pts); float fl=float(l); int rander=pts[int(random(@ptnum*fl+randomConnect)*fl*fl) % l]; curPos=attrib(read,"point", "P", rander); if(keepPointCount){ int to=rander; if(read){ to=addpoint(0,curPos); } addprim(0,"polyline",@ptnum,to); }else{ drawLine(v@P,curPos); } }
  13. Nuclear Explosion

    You have tutos here (Andrew Melnychuk-0seen) ....its old but I like it .
  14. Propagating point creation with VEX

    Thank you @haki
  15. How to model a difficult flower shape?

    Flora Math . Use from @Aizatulin beautiful examples . https://www.sidefx.com/forum/topic/55277/?page=1#post-248446 and this.... just play a little of your Time. Have fun
  16. How to model a difficult flower shape?

    Play with this method. https://vimeo.com/235819159
  17. Any way to get the cmiVFX L-System tutorials?

    @Jaanus don't listen to those productivity gurus Plus you have on Odforce some examples from cmiVFX ---trust me--maybe I have. Combine and find why you need L-system. Have fun https://www.artstation.com/artwork/rwaE5 http://tmdag.com/ptakun/eco_system/makeofplants_en_htm_files/ https://artofjared.wordpress.com/2011/04/ http://www.michael-hansmeyer.com/l-systems https://morphocode.com/intro-to-l-systems/ http://www.selcukergen.net/ncca_lsystems_research/houdini.html https://www.academia.edu/
  18. Nature fun

    next step to learn its to color those
  19. I'm looking for VEX "Spline" function tutorials...

    @Milad Savar ? empty Wrangle Nice https://www.sidefx.com/forum/topic/45672/
  20. Computational Fluid Dynamics

    @Omar Wanis Hi! http://www.issp.ac.ru/ebooks/books/open/Advanced_Fluid_Dynamics.pdf https://www.in.tum.de/fileadmin/w00bws/cg/Research/Publications/2016/NBFlip/nbflip.pdf http://graphics.stanford.edu/courses/cs348c/ http://www.cs.columbia.edu/cg/liquidhair/main_opt.pdf https://cs.uwaterloo.ca/~c2batty/papers/Larionov2017/Larionov2017.pdf https://nccastaff.bournemouth.ac.uk/jmacey/MastersProjects/MSc17/03/thesis.pdf https://www.diva-portal.org/smash/get/diva2:559073/FULLTEXT01.pdf http://wanochoi.com/lecture/Houdini16_FLIP.pdf http://staffwww.itn.liu.se/~jonun/web/teaching/2011-TNCG13/Lectures/Lecture03-MW/Wrenninge_2011_Fluids.pdf https://pdfs.semanticscholar.org/9a91/863baccd64c570e6912617f2b11cf55a971b.pdf
  21. PointRenderShader

    I like this https://www.behance.net/gallery/33839482/Point-Render How to achieve this shader Brush effect?
  22. PointRenderShader

    Here on the forum, you can find everything just to learn to combine /close. td_cross_2.hipnc (file from 2004) reading from points attribute Qfields FUN #define PI 3.1415926535897931 #pragma label Theta "Maximum Theta" #pragma label spread "Overall Spread" #pragma label DATA "Data Points" #pragma label kd "Diffuse" #pragma label ks "Specular" #pragma label bump "Bump" surface qrotation_field ( float Theta = 2.0, spread = 3, kd = 1, ks = 0.5, bump = 0.1; string DATA = "$HIP/../VEX/Reading-Data-Points/_datapoints.bgeo.sc") { float d, Np, theta, pFratt, factor, pspread; vector _P, pP, axis, pVratt; vector4 Q; string group; _P = ptransform("space:camera", "space:world", P); theta = snoise(_P + 0.9, 1, 0.75, 1)*4.5; axis = snoise(_P + 0.05, 1, 0.05, 1); Q = quaternion(theta, axis); _P = qrotate(Q, _P); for(int g = 0; g < 2; g++){ group = concat("group", itoa(g)); int p[] = expandpointgroup(DATA, group); Np = len(p); factor = g + 1; for (int i = 0; i < Np; i++){ pP = point(DATA, "P", p[i]); axis = point(DATA, "N", p[i]); pFratt = point(DATA, "fratt", p[i]); pVratt = point(DATA, "vratt", p[i]); pspread = pFratt*spread/factor; d = distance2(pP, _P); d = exp(-d*d/pspread); theta = 2*PI*(pFratt*2 - 1)*d*Theta/factor; Q = quaternion(theta, axis); _P = qrotate(Q, _P - pP) + pP; } } vector outColor = snoise(_P*0.25, 1, 0.25, 1); vector Nn = normalize(computenormal(P + min(outColor)*bump, N, Ng)); vector diff = diffuse(Nn)*outColor*dot(normalize(-I), N); vector spec = specular(Nn, normalize(-I), fit01(min(outColor), 0.5, 0.1))*0.1; spec += specular(N, normalize(-I), 0.05); Cf = diff*kd + spec*ks; }
  23. SOP-Level Particle with VEX and VOP ONLY

    phenomenal thanks
×