Search
  • Sign Up
  • Sign In

Grasshopper

algorithmic modeling for Rhino

  • Home
    • Members
    • Listings
    • Ideas
  • View
    • All Images
    • Albums
    • Videos
    • Architecture Projects
    • Installations
    • Add-ons
  • Download
    • Rhino 7 w/Grasshopper
    • Add-ons
  • Forums/Support
    • Current Discussions
    • Legacy Forum
  • Learn
    • Getting Started
    • Online Reference
    • API documentation
    • Video Tutorials
    • Common Questions
    • Scripting and Coding
    • Books and Articles
  • Attend
  • My Page

Search Results - 体彩福建31选7第19035期开奖号码『0TBH·COM』重庆时时彩跨度规则2023年3月19日14时43分48秒.H5c2a3.yzbiuviqk

Topic: 3D printing survey
greatly appreciate it!! You can write the number of the question and write your answer next to it, example: 1) a 2) c 3) a) Washington University in St. Louis 4) 2 weeks (1week+1week shipping) 5) 130 6) b 7) b The survey questions are as follows: 1)   Did you 3D print before? 5)   How much did it cost (in dollars)?   a. Yes, for a school project   a. Between 20 & 50   b. Yes, for a personal project   b. Between 50 & 80         c. Between 80 & 120 2)   Print size   d. Please specify if otherwise: _____ dollars   a. Between 2 & 6 cubic inches         b. Between 6 & 12 cubic inches 6)   Do you think the price was expensive?   c. Between 12 & 20 cubic inches   a. Not at all   d. Please specify if otherwise: ____cubic inches   b. A little bit expensive         c. Very expensive 3)   Where did you print your object?         a. School 7)   Were you satisfied with the printed object?   b. Outside school: _________________   a. Yes, it was a great print without problems         b. Not bad, some issues 4)   How long did it take to print?   c. I was not satisfied, very bad quality   a. ___ days         b. ___ weeks                   Thank you very much to all!! PS: If you did many 3D prints, you can post multiple answers. Wassef…
Added by Wassef Dabboussi at 11:04am on April 13, 2013
Topic: DataTree selection rules
will work slightly different from before. Sorry about breaking this, but it proved impossible to improve the selection logic with the fairly ambiguous notation that was implemented already. Not every change is breaking though and I hope that most simple matching rules will work as before. There will be a McNeel webinar on Wednesday the 6th of November where I discuss the new selection rules (as well as path mapping syntax and relative offsets within one or more data trees). This will be a pretty hard-core webinar aimed at expert users. The event will be recorded so you can always go and watch it later. I figured I'd briefly explain the new selection rules on Ning before I release the update though. ------------------------------------------------------------------------------- Imagine we have the following data tree, containing a bunch of textual characters: {0;0} = [a,e,i,o,u,y] {0;1} = [ä,ë,ê,ï,î,ö,ô,õ,ü,û,ÿ,ý] {1;0} = [b,c,d,f,g,h,j,k,l,m,n,p,q,r,s,t,v,w,x,z] {1;1} = [ç,ĉ,č,ĝ,ř,š,ş,ž] There are a total of four branches {0;0}, {0;1}, {1;0} and {1;1}. The first branch contains all the vowels that are part of the standard English alphabet. The second branch contains all non-standard vowels and branches three and four contain the standard and non-standard consonants respectively. So what if we want to select from this tree only the standard vowels? Basically include everything in the first branch and disregard everything else. We can use the [Tree Split] component with a selection rule to achieve this: {0;0} This selection rule hard-codes the number zero in both tree path locations. It doesn't define an item index rule, so all items in {0;0} will be selected. If we want all the vowels (both standard and non-standard), then we have several options: {0;?}         = select all branches that start with 0 {0;(0,1)}    = select all branches that start with 0 and end in either 0 or 1 {0;(0 to 1)} =    ......................................... and end in the range 0 to 1. Conversely, selecting all standard vowels and consonants while disregarding all non-standard character can be achieved with rules as follows: {?;0} {(0,1);0} {(0 to 1);0} It is also possible to select items from each branch in addition to limiting the selection to specific branches. In this case another rule stated in square brackets needs to be appended: {0;?}[0 to 2] The above rule will select the first three vowels from the standard and the non-standard lists. Basically, rules work in a very consistent way, but there are some syntax conventions you need to know. The first thing to realize is that every individual piece of data in a data-tree can be uniquely and unambiguously identified by a collection of integers. One integer describes its index within the branch and the others are used to identify the branch within the tree. As a result a rule for selection items always looks the same: {A;B;C;...;Z}[i]              where A, B, C, Z and i represent rules. It's very similar to the Path Mapper syntax except it uses square brackets instead of parenthesis for the index (the Path Mapper will follow suit soon, but that won't be a breaking change). You always have to define the path selector rule in between curly brackets. You can supply any number of rules as long as you separate them with semi-colons. The index rule is optional, but -when provided- it has to be encased in square brackets after the path selection rule(s). The following rule notations are allowed: *  Any number of integers in a path ?  Any single integer 6  Any specific integer !6  Anything except a specific integer (2,6,7)  Any one of the specific integers in this group. !(2,6,7)  Anything except one of the integers in this group. (2 to 20)  Any integer in this range (including both 2 and 20). !(2 to 20) Any integer outside this range. (0,2,...)  Any integer part of this infinite sequence. Sequences have to be at least two integers long, and every subsequent integer has to be bigger than the previous one (sorry, that may be a temporary limitation, don't know yet). (0,2,...,48)  Any integer part of this finite sequence. You can optionally provide a single sequence limit after the three dots. !(3,5,...)  Any integer not part of this infinite sequence. The sequence doesn't extend to the left, only towards the right. So this rule would select the numbers 0, 1, 2, 4, 6, 8, 10, 12 and all remaining even numbers. !(7,10,21,...,425)  Any integer not part of this finite sequence. Furthermore, it is possible to combine two or more rules using the boolean and/or operators. If you want to select the first five items in every list of a datatree and also the items 7, 12 and 42, then the selection rule would look as follows: {*}[(0 to 4) or (6,11,41)] The asterisk allows you to include all branches, no matter what their paths looks like. It is at present not possible to use the parenthesis to define rule precedence, rules are always evaluated from left to right. It is at present also not possible to use negative integers to identify items from the end of a list. If you want to know more, join the Webinar on Wednesday! -- David Rutten david@mcneel.com Seattle, WA…
Added by David Rutten at 8:57pm on November 3, 2013
Comment on: Topic 'Start of an angle'
curve or locus] of a segment AB, in English. The set of all the points from which a segment, AB, is seen under a fixed given angle.     When you construct l'arc capable —by using compass— you obviously need to find the centre of this arc. This can be easily done in GH in many ways by using some trigonometry (e.g. see previous —great— solutions). Whole circles instead of arcs provide supplementary isoptics —β-isoptic and (180º-β)-isoptic—. Coherent normals let you work in any plane. Or you could just construct β-isoptics of AB by using tangent at A (or B). I mean [Arc SED] component. If you want the true β-isoptic —the set of all the points— you should use {+β, -β} degrees (2 sides; 2 solutions; 2 arcs), but slider in [-180, +180] degrees provides full range of signed solutions. Orthoptic is provided by ±90º. Notice that ±180º isoptic is just AB segment itself, and 0º isoptic should be the segment outside AB —(-∞, A] U [B, +∞)—. [Radians] component is avoidable. More compact versions can be achieved by using [F3] component. You can choose among different expressions the one you like the most as long as performs counter clockwise rotation of vector AB, by 180-β degrees, around A; or equivalent. [Panel] is totally avoidable. Solutions in XY plane —projection; z = 0—, no matter A or B, are easy too. Just be sure about the curve you want to find the intersection with —Curve; your wall— being contained in XY plane. A few self-explanatory examples showing features.                 1 & 5            1st ver. (Supplementary isoptics) (ArcCapableTrigNormals_def_Bel.png)              2 & 6             2nd ver. (SED) (ArcCapableSED_def_Bel.png)                3 & 7            3rd ver.  (SED + F3) (ArcCapableSEDF3_def_Bel.png)             4 & 8            4th ver. (SED + F3, Projection) (ArcCapableSEDProjInt_def_Bel.png)   If you want to be compact, 7 could be your best choice. If you prefer orientation robustness, 5. Etcetera.   I hope these versions will help you to compact/visualize; let me know any feedback.   Calculate where 2 points [A & B] meet at a specific angle is just find the geometrical locus called arco capaz in Spanish, arc capable in French (l'isoptique d'un segment de droite) or isoptic [curve or locus] of a segment AB, in English. The set of all the points from which a segment, AB, is seen under a fixed given angle.…
Added by Beltrán Fernández Mariño at 11:03pm on July 24, 2011
Comment on: Topic '[clarified and WIP] butterfly doesn't work with OpeFOAM v1606'
he "return" is comment out as shown below? After restarting Rhino and Grasshopper, I opened the outdoors_airflow demo file, and the first step of creating the case file is ok: Then the blockMesh component gives the following error: seems I have to manually start OF first..  so, as the error message suggested, I open OF by Start_OF.bat: Then come back to the blockMesh component, now it can be executed while the OF command line window is also openning: ... and the blockMesh finished successfully: ... so I proceeded to run snappyHexMesh, checkMesh and update fvScheme: ... up to the simpleFoam component, I got the error again: The warning message is: 1. Solution exception: --> OpenFOAM command Failed!#0  Foam::error::printStack(Foam::Ostream&) in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so" #1  Foam::sigFpe::sigHandler(int) in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so" #2  ? in "/lib64/libc.so.6" #3  double Foam::sumProd<double>(Foam::UList<double> const&, Foam::UList<double> const&) in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so" #4  Foam::PCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so" #5  Foam::GAMGSolver::solveCoarsestLevel(Foam::Field<double>&, Foam::Field<double> const&) const in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so" #6  Foam::GAMGSolver::Vcycle(Foam::PtrList<Foam::lduMatrix::smoother> const&, Foam::Field<double>&, Foam::Field<double> const&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::Field<double>&, Foam::PtrList<Foam::Field<double> >&, Foam::PtrList<Foam::Field<double> >&, unsigned char) const in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so" #7  Foam::GAMGSolver::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/lib/libOpenFOAM.so" #8  Foam::fvMatrix<double>::solveSegregated(Foam::dictionary const&) in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/lib/libfiniteVolume.so" #9  Foam::fvMatrix<double>::solve(Foam::dictionary const&) in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/bin/simpleFoam" #10  Foam::fvMatrix<double>::solve() in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/bin/simpleFoam" #11  ? in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/bin/simpleFoam" #12  __libc_start_main in "/lib64/libc.so.6" #13  ? in "/opt/OpenFOAM/OpenFOAM-v1606+/platforms/linux64GccDPInt32Opt/bin/simpleFoam" ... and the command lines in the readMe! output are pretty long and it is saved in the text file attached here. So, my questions are: 1. why I have to manually start OF first before I can use the blockMesh component? Should butterfly automatically start OF? 2. what might be the cause of the unsuccessful run of simpleFoam in the end? Hope you can kindly advise! Thank you! - Ji …
Added by Grasshope to Ladybug Tools at 9:04am on August 10, 2016
Topic: Honeybee generation is ready to fly - example work flow!
eration! See an example work flow for designing, simulating and analysing a Photovoltaic system below. Download a Grasshopper and Rhino example file: https://www.dropbox.com/s/krbszlplj5i40dz/017_HBgeneration%20Rhino%20model.3dm?dl=0 https://www.dropbox.com/s/lxneuzal3mipd2q/017_HBgeneration.gh?dl=0 See a quick introduction and tutorial videos here: https://www.youtube.com/playlist?list=PLrx2KnyhaJ5YXo5hpk8Q9q4Vy99O5IegK 1. Select a building to mount a photovoltaic generator on (seen in Rhino in green).  2. Select a surface within that building to mount a photovoltaic generator on (seen in Rhino in green). 3. Create a Honeybee context surface from that surface. 4. Place a photovoltaic generator on that Honeybee context surface by using the Honeybee generation component. Honeybee_Generator_PV and connecting the context surface to it's input _HBSurfaces. Then you can specify both the performance and the financial data of the photovoltaic generator. 5. Create a Honeybee generation system which consists of the photovoltaic generator in 4. By using the component Honeybee_generationsystem and connecting 4 to its input PVHBSurfaces_. Then you can specify the annual maintenance cost of this system. 6. Run the simulation in Energy Plus by connecting 5. to the input HBGenerators_. 7. Read the results of the simulation: - The electricity produced by the Honeybee generation system in 5. - The net purchased electricity of the facility (the Honeybee zone) to which the Honeybee generation system is attached to. This is the electricity consumed by the facility less the electricity generated by the Honeybee generation system. - The financial costs of the Honeybee generation system; capital, maintenance and replacement costs. 8. Calculate the net present cost of the Honeybee generation system in 5 assuming a 25 year lifetime. 9. Visualise the net present cost. …
Added by Anton Szilasi to Ladybug Tools at 7:07am on August 28, 2015
Blog Post: THE SWARM (updated 10.04.2012)

'THE SWARM' is a parametrical designed, free-standing, sculptural…

Added by Wieland Schmidt at 4:09am on March 15, 2012
Topic: [discussion] Sky View Factor
t defined from the discussion of radiation exchange between urban surfaces and the sky in urban heat island research (See Oke's literature list below). It will be affected by the proportion of sky visible from a given calculation point on a surface (vertical or horizontal) as a result of the obstruction of urban geometry, but it is not entirely associated with the solid angle subtended by the visible sky patch/patches. So, I think using "geometry way" to approximate Sky View Factor is not correct. Sky View Factor calculation shall be based on the first principle defining the concept: radiation exchange between urban surface and sky hemisphere: (image extracted from Johnson, G. T., & Watson, 1984) Therefore, I always refer to the following "theoretical" Sky View Factors calculated at the centre of an infinitely long street canyon with different Height-to-width ratios in Oke's original paper (1981) as the ultimate benchmark to validate different methods to calculate SVF: So, I agree with Compagnon (2004) on the method he used to calculate SVF: a simple radiation (or illuminance) simulation using a uniform sky. The following images are the results of the workflow I built in the procedural modeling software Houdini (using its python library) according to this principle by calling Radiance to do the simulation and calculation, and the SVF values calculated for different canyon H/W ratios (shown at the bottom of each image) are very close to the values shown in Oke's paper. H/W=0.25, SVF=0.895 H/W=1, SVF=0.447 H/W=2, SVF=0.246 It seems that the Sky View Factor calculated from the viewAnalysis component in Ladybug is not aligned with Oke's result for a given H/W ration: (GH file attached) According to the definition shown in this component, I assume the value calculated is the percentage of visible sky which is a geometric calculation (shooting evenly distributed rays from sensor point to the sky and calculate the ratio of rays not blocked by urban geometry?), i.e solid angle subtended by visible sky patches, and it is not aligned with the original radiation exchange definition of Sky View Factor. I'd suggest to call this geometrically calculated ratio of visible sky "Sky Exposure Factor" which is "true" to its definition and way of calculation (see the paper on Sky Exposure Factor below) so as to avoid confusion with "The Sky View Factor based on radiation exchange" as discussed in urban climate literature. Appreciate your comments and advice! References: SVF: definition based on first principle Oke, T. R. (1981). Canyon geometry and the nocturnal urban heat island: comparison of scale model and field observations. Journal of Climatology, 1(3), 237-254. Oke, T. R. (1987). Boundary layer climates (2nd ed.). London ; New York: Methuen. Johnson, G. T., & Watson, I. D. (1984). The Determination of View-Factors in Urban Canyons. Journal of American Meteorological Society, 23, 329-335. Watson, I. D., & Johnson, G. T. (1987). Graphical estimation of sky view-factors in urban environments. INTERNATIONAL JOURNAL OF CLIMATOLOGY, 7(2), 193-197. doi: 10.1002/joc.3370070210 Papers on SVF calculation: Brown, M. J., Grimmond, S., & Ratti, C. (2001). Comparison of Methodologies for Computing Sky View Factor in Urban Environments. Los Alamos, New Mexico, USA: Los Alamos National Laboratory. SVF calculation based on first principle: Compagnon, R. (2004). Solar and daylight availability in the urban fabric. Energy and Buildings, 36(4), 321-328. paper on Sky Exposure Factor: Zhang, J., Heng, C. K., Malone-Lee, L. C., Hii, D. J. C., Janssen, P., Leung, K. S., & Tan, B. K. (2012). Evaluating environmental implications of density: A comparative case study on the relationship between density, urban block typology and sky exposure. Automation in Construction, 22, 90-101. doi: 10.1016/j.autcon.2011.06.011 …
Added by Grasshope to Ladybug Tools at 10:52am on February 10, 2016
Comment on: Topic 'Angular steel cross sections to cross section table'
rring to the above image) Area effective effective Second Elastic Elastic Plastic Radius Second Elastic Plastic Radius of Vy shear Vz shear Moment Modulus Modulus Modulus of Moment Modulus Modulus of Section Area  Area  of Area upper lower Gyration of Area Gyration (strong axis) (strong axis) (strong axis) (strong axis) (strong axis) (weak axis) (weak axis) (weak axis) (weak axis) A Ay Az Iy Wy Wy Wply i_y Iz Wz Wplz i_z cm2 cm2 cm2 cm4 cm3 cm3 cm3 cm cm4 cm3 cm3 cm I have a very similar table which I could import to the Karamba table. But I have i_v or i_u values as well as radius of inertia for instance.  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 dimensjon Masse Areal akse Ix Wpx ix akse Iy Wpy iy akse Iv Wpv iv Width Thickness Radius R [kg/m] [mm2] [mm4] [mm3] [mm] [mm4] [mm3] [mm] [mm4] [mm3] [mm] [mm] [mm] [mm] L 20x3 0.89 113 x-x 4,000 290 5.9 y-y 4,000 290 5.9 v-v 1,700 200 3.9 20 3 4 L 20x4 1.15 146 x-x 5,000 360 5.8 y-y 5,000 360 5.8 v-v 2,200 240 3.8 20 4 4 L 25x3 1.12 143 x-x 8,200 460 7.6 y-y 8,200 460 7.6 v-v 3,400 330 4.9 25 3 4 L 25x4 1.46 186 x-x 10,300 590 7.4 y-y 10,300 590 7.4 v-v 4,300 400 4.8 25 4 4 L 30x3 1.37 175 x-x 14,600 680 9.1 y-y 14,600 680 9.1 v-v 6,100 510 5.9 30 3 5 L 30x4 1.79 228 x-x 18,400 870 9.0 y-y 18,400 870 9.0 v-v 7,700 620 5.8 30 4 5 L 36x3 1.66 211 x-x 25,800 990 11.1 y-y 25,800 990 11.1 v-v 10,700 760 7.1 36 3 5 L 36x4 2.16 276 x-x 32,900 1,280 10.9 y-y 32,900 1,280 10.9 v-v 13,700 930 7.0 36 4 5 L 36x5 2.65 338 x-x 39,500 1,560 10.8 y-y 39,500 1,560 10.8 v-v 16,500 1,090 7.0 36 5 5 I have diagonals (bracings) which can buckle in these "non-regular" directions too, and they do. If I could add those values then in the Karamba model I could assign specific buckling scenarios.....  I can see another challenge which will be at the ModifyElement component, I will not be able to choose these buckling lengths, in these directions. Do you think this functionality can be added within  short, or should I try to find another way to model these members? Br, Balazs …
Added by Balazs Kisfali to Karamba3D at 2:14am on May 23, 2017
Topic: What are the icons on a component's input/output parameter?
ers can be applied from the right click Context Menu of either a component's input or output parameters. With the exception of <Principal> and <Degrees> they work exactly like their corresponding Grasshopper Component. When a I/O Modifier is applied to a parameter a visual Tag (icon) is displayed. If you hover over a Tag a tool tip will be displayed showing what it is and what it does. The full list of these Tags: 1) Principal An input with the Principal Icon is designated the principal input of a component for the purposes of path assignment. For example: 2) Reverse The Reverse I/O Modifier will reverse the order of a list (or lists in a multiple path structure) 3) Flatten The Flatten I/O Modifier will reduce a multi-path tree down to a single list on the {0} path  4) Graft The Graft I/O Modifier will create a new branch for each individual item in a list (or lists) 5) Simplify The Simplify I/O Modifier will remove the overlap shared amongst all branches. [Note that a single branch does not share any overlap with anything else.] 6) Degrees The Degrees Input Modifier indicates that the numbers received are actually measured in Degrees rather than Radians. Think of it more like a preference setting for each angle input on a Grasshopper Component that state you prefer to work in Degrees. There is no Output option as this is only available on Angle Inputs. 7) Expression The Expression I/O Modifier allows you change the input value by evaluating an expression such as -x/2 which will have the input and make it negative. If you hover over the Tag a tool tip will be displayed with the expression. Since the release of GH version 0.9.0068 all I/O Expression Modifiers use "x" instead of the nickname of the parameter. 8) Reparameterize The Reparameterize I/O Modifier will only work on lines, curves and surfaces forcing the domains of all geometry to the [0.0 to 1.0] range. 9) Invert The Invert Input Modifier works in a similar way to a Not Gate in Boolean Logic negating the input. A good example of when to use this is on [Cull Pattern] where you wish to invert the logic to get the opposite results. There is no Output option as this is only available on Boolean Inputs. …
Added by Danny Boyes at 11:41am on March 10, 2014
Blog Post: Workshop FormFinding Strategies MILANO - ITALIA

only compression vault arturo tedeschi

FORM FINDING STRATEGIES WORKSHOP…

Added by Arturo Tedeschi at 3:55am on November 12, 2015
  • 1
  • ...
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63

About

Scott Davidson created this Ning Network.

Welcome to
Grasshopper

Sign Up
or Sign In

Translate

Search

Photos

  • SubD TriRemesh

    SubD TriRemesh

    by Parametric House 0 Comments 0 Likes

  • Scaled Voronoi

    Scaled Voronoi

    by Parametric House 0 Comments 0 Likes

  • optimized ruins

    optimized ruins

    by lost in wires 1 Comment 1 Like

  • optimized ruins

    optimized ruins

    by lost in wires 0 Comments 0 Likes

  • Random Vector Lines

    Random Vector Lines

    by Parametric House 0 Comments 0 Likes

  • Add Photos
  • View All
  • Facebook

Videos

  • SubD TriRemesh

    SubD TriRemesh

    Added by Parametric House 0 Comments 0 Likes

  • Scaled Voronoi

    Scaled Voronoi

    Added by Parametric House 1 Comment 0 Likes

  • Image-to-3d Workflow using OpenAI Shap-E and Rhino

    Image-to-3d Workflow using OpenAI Shap-E and Rhino

    Added by kgm 0 Comments 1 Like

  • Random Vector Lines

    Random Vector Lines

    Added by Parametric House 0 Comments 0 Likes

  • Text-to-3d-to-AR Workflow using OpenAI Shap-E and Rhino AR

    Text-to-3d-to-AR Workflow using OpenAI Shap-E and Rhino AR

    Added by kgm 0 Comments 0 Likes

  • Pufferfish Net On Surface

    Pufferfish Net On Surface

    Added by Parametric House 0 Comments 0 Likes

  • Add Videos
  • View All
  • Facebook

© 2023   Created by Scott Davidson.   Powered by Website builder | Create website | Ning.com

Badges  |  Report an Issue  |  Terms of Service