

{"id":30,"date":"2017-10-06T07:02:33","date_gmt":"2017-10-06T07:02:33","guid":{"rendered":"https:\/\/www.kwinanagolfclub.com.au\/cms\/?page_id=30"},"modified":"2026-04-14T09:15:17","modified_gmt":"2026-04-14T01:15:17","slug":"home","status":"publish","type":"page","link":"https:\/\/www.kwinanagolfclub.com.au\/cms\/","title":{"rendered":"Home"},"content":{"rendered":"<p style=\"text-align: left;\"><em>Kwinana Golf Course is set in picturesque native woodland only 30 minutes south of Perth CBD. The course is populated with towering Marri, Tuart and Eucalyptus trees and has an abundance of native wildlife. We are open to the public, welcome green fee players, and have an open competition daily for those with a GA handicap. The club has extensive facilities including a licensed bar and fully stocked pro-shop with attentive staff. Our bistro is open to all, offering a fresh, seasonal menu in a laid-back setting overlooking the course.<\/em><\/p>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"1200\" src=\"https:\/\/www.kwinanagolfclub.com.au\/cms\/wp-content\/uploads\/2026\/03\/1100-1-800x1200.png\" alt=\"\" class=\"wp-image-11526\" srcset=\"https:\/\/www.kwinanagolfclub.com.au\/cms\/wp-content\/uploads\/2026\/03\/1100-1-800x1200.png 800w, https:\/\/www.kwinanagolfclub.com.au\/cms\/wp-content\/uploads\/2026\/03\/1100-1-533x800.png 533w, https:\/\/www.kwinanagolfclub.com.au\/cms\/wp-content\/uploads\/2026\/03\/1100-1-768x1152.png 768w, https:\/\/www.kwinanagolfclub.com.au\/cms\/wp-content\/uploads\/2026\/03\/1100-1.png 1024w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<div class=\"golf-rain-overlay\" aria-hidden=\"true\">\n  <canvas id=\"golfRainCanvas\"><\/canvas>\n<\/div>\n\n<style>\n  .golf-rain-overlay{\n    position: fixed;\n    inset: 0;\n    z-index: 9999;           \/* raise\/lower if needed *\/\n    pointer-events: none;    \/* lets users click through *\/\n  }\n  #golfRainCanvas{\n    width: 100%;\n    height: 100%;\n    display: block;\n  }\n\n  @media (prefers-reduced-motion: reduce){\n    .golf-rain-overlay{ display: none; }\n  }\n<\/style>\n\n<script>\n(() => {\n  const canvas = document.getElementById(\"golfRainCanvas\");\n  if (!canvas) return;\n\n  const reduceMotion = window.matchMedia && window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n  if (reduceMotion) return;\n\n  const ctx = canvas.getContext(\"2d\", { alpha: true });\n\n  function resize() {\n    const dpr = Math.max(1, window.devicePixelRatio || 1);\n    canvas.width  = Math.floor(window.innerWidth * dpr);\n    canvas.height = Math.floor(window.innerHeight * dpr);\n    canvas.style.width = window.innerWidth + \"px\";\n    canvas.style.height = window.innerHeight + \"px\";\n    ctx.setTransform(dpr, 0, 0, dpr, 0, 0); \/\/ draw in CSS pixels\n  }\n\n  \/\/ More realistic golf ball render:\n  \/\/ - layered radial gradients\n  \/\/ - crisp specular highlight\n  \/\/ - dimple pattern clipped to sphere\n  \/\/ - subtle edge darkening (vignette)\n  function drawGolfBall(x, y, r, rot) {\n    \/\/ Soft shadow (very subtle, because balls are \"in the air\")\n    ctx.save();\n    ctx.globalAlpha = 0.10;\n    ctx.beginPath();\n    ctx.ellipse(x + r*0.35, y + r*1.15, r*0.85, r*0.30, 0, 0, Math.PI*2);\n    ctx.fillStyle = \"#000\";\n    ctx.fill();\n    ctx.restore();\n\n    \/\/ Base sphere shading\n    const base = ctx.createRadialGradient(\n      x - r*0.45, y - r*0.55, r*0.25,\n      x, y, r*1.2\n    );\n    base.addColorStop(0.00, \"#ffffff\");\n    base.addColorStop(0.55, \"#f2f2f2\");\n    base.addColorStop(1.00, \"#dcdcdc\");\n\n    ctx.beginPath();\n    ctx.arc(x, y, r, 0, Math.PI*2);\n    ctx.fillStyle = base;\n    ctx.fill();\n\n    \/\/ Dimples (denser + smaller)\n    ctx.save();\n    ctx.beginPath();\n    ctx.arc(x, y, r, 0, Math.PI*2);\n    ctx.clip();\n\n    ctx.translate(x, y);\n    ctx.rotate(rot);\n    ctx.translate(-x, -y);\n\n    const dimpleSpacing = r * 0.42;\n    const dR = r * 0.075;\n    ctx.fillStyle = \"rgba(0,0,0,0.07)\";\n    for (let yy = y - r*1.4; yy <= y + r*1.4; yy += dimpleSpacing) {\n      for (let xx = x - r*1.4; xx <= x + r*1.4; xx += dimpleSpacing) {\n        \/\/ slight offset every other row for a hex-ish pattern\n        const offset = ((Math.round((yy - (y - r*1.4))\/dimpleSpacing) % 2) ? dimpleSpacing*0.5 : 0);\n        ctx.beginPath();\n        ctx.arc(xx + offset, yy, dR, 0, Math.PI*2);\n        ctx.fill();\n      }\n    }\n    ctx.restore();\n\n    \/\/ Edge darkening (makes it feel spherical)\n    const rim = ctx.createRadialGradient(x, y, r*0.35, x, y, r);\n    rim.addColorStop(0.0, \"rgba(0,0,0,0)\");\n    rim.addColorStop(1.0, \"rgba(0,0,0,0.18)\");\n    ctx.beginPath();\n    ctx.arc(x, y, r, 0, Math.PI*2);\n    ctx.fillStyle = rim;\n    ctx.fill();\n\n    \/\/ Specular highlight\n    const spec = ctx.createRadialGradient(\n      x - r*0.40, y - r*0.45, r*0.05,\n      x - r*0.40, y - r*0.45, r*0.55\n    );\n    spec.addColorStop(0.0, \"rgba(255,255,255,0.95)\");\n    spec.addColorStop(0.25, \"rgba(255,255,255,0.55)\");\n    spec.addColorStop(1.0, \"rgba(255,255,255,0.0)\");\n    ctx.beginPath();\n    ctx.arc(x, y, r, 0, Math.PI*2);\n    ctx.fillStyle = spec;\n    ctx.fill();\n\n    \/\/ Fine outline\n    ctx.beginPath();\n    ctx.arc(x, y, r, 0, Math.PI*2);\n    ctx.strokeStyle = \"rgba(0,0,0,0.08)\";\n    ctx.lineWidth = Math.max(1, r * 0.06);\n    ctx.stroke();\n  }\n\n  \/\/ Slow fall physics\n  const gravity = 140;        \/\/ slower than before\n  const maxFallSpeed = 220;   \/\/ cap vertical speed for gentle drift\n  const windChange = 0.25;    \/\/ how quickly wind drifts\n  const spawnEveryMs = 420;   \/\/ fewer per second (slower \u201crain\u201d)\n  const maxBalls = 28;\n\n  let balls = [];\n  let lastSpawn = performance.now();\n  let lastT = performance.now();\n  let wind = 0;\n\n  function spawnBall() {\n    const r = 10 + Math.random() * 12;\n    balls.push({\n      x: Math.random() * window.innerWidth,\n      y: -r - Math.random() * 120,\n      r,\n      vx: (Math.random() - 0.5) * 18,     \/\/ gentle sideways drift\n      vy: 20 + Math.random() * 60,        \/\/ start slow\n      rot: Math.random() * Math.PI * 2,\n      rotV: (Math.random() - 0.5) * 0.9   \/\/ subtle spin\n    });\n  }\n\n  function step(t) {\n    const dt = Math.min(0.033, (t - lastT) \/ 1000);\n    lastT = t;\n\n    const w = window.innerWidth;\n    const h = window.innerHeight;\n\n    \/\/ spawn\n    if (t - lastSpawn > spawnEveryMs && balls.length < maxBalls) {\n      spawnBall();\n      lastSpawn = t;\n    }\n\n    \/\/ slowly varying wind\n    wind += (Math.random() - 0.5) * windChange;\n    wind *= 0.98;\n\n    \/\/ clear\n    ctx.clearRect(0, 0, w, h);\n\n    \/\/ update + draw\n    for (let i = balls.length - 1; i >= 0; i--) {\n      const b = balls[i];\n\n      b.vy = Math.min(maxFallSpeed, b.vy + gravity * dt);\n      b.vx += wind * dt;\n\n      b.x += b.vx * dt;\n      b.y += b.vy * dt;\n\n      \/\/ wrap horizontally\n      if (b.x < -b.r) b.x = w + b.r;\n      if (b.x > w + b.r) b.x = -b.r;\n\n      \/\/ rotation\n      b.rot += b.rotV;\n\n      drawGolfBall(b.x, b.y, b.r, b.rot);\n\n      \/\/ remove when out bottom\n      if (b.y - b.r > h + 60) balls.splice(i, 1);\n    }\n\n    requestAnimationFrame(step);\n  }\n\n  resize();\n  window.addEventListener(\"resize\", resize, { passive: true });\n  requestAnimationFrame((t) => { lastSpawn = t; lastT = t; requestAnimationFrame(step); });\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Kwinana Golf Course is set in picturesque native woodland only 30 minutes south of Perth CBD. The course is populated with towering Marri, Tuart and Eucalyptus trees and has an&#8230; <a class=\"read_more_link \" href=\"https:\/\/www.kwinanagolfclub.com.au\/cms\/\"> Read More <i class=\"fa fa-angle-right\" aria-hidden=\"true\"><\/i><\/a><\/p>\n","protected":false},"author":30,"featured_media":0,"parent":0,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"templates\/page-home.php","meta":{"_acf_changed":false,"footnotes":"","_links_to":"","_links_to_target":""},"class_list":["post-30","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Home - Kwinana Golf Club<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.kwinanagolfclub.com.au\/cms\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Home - Kwinana Golf Club\" \/>\n<meta property=\"og:description\" content=\"Kwinana Golf Course is set in picturesque native woodland only 30 minutes south of Perth CBD. The course is populated with towering Marri, Tuart and Eucalyptus trees and has an... Read More\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.kwinanagolfclub.com.au\/cms\/\" \/>\n<meta property=\"og:site_name\" content=\"Kwinana Golf Club\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-14T01:15:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.kwinanagolfclub.com.au\/cms\/wp-content\/uploads\/2026\/03\/1100-1-800x1200.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"1200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.kwinanagolfclub.com.au\\\/cms\\\/\",\"url\":\"https:\\\/\\\/www.kwinanagolfclub.com.au\\\/cms\\\/\",\"name\":\"Home - Kwinana Golf Club\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.kwinanagolfclub.com.au\\\/cms\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.kwinanagolfclub.com.au\\\/cms\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.kwinanagolfclub.com.au\\\/cms\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.kwinanagolfclub.com.au\\\/cms\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/1100-1-800x1200.png\",\"datePublished\":\"2017-10-06T07:02:33+00:00\",\"dateModified\":\"2026-04-14T01:15:17+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.kwinanagolfclub.com.au\\\/cms\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.kwinanagolfclub.com.au\\\/cms\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.kwinanagolfclub.com.au\\\/cms\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.kwinanagolfclub.com.au\\\/cms\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/1100-1.png\",\"contentUrl\":\"https:\\\/\\\/www.kwinanagolfclub.com.au\\\/cms\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/1100-1.png\",\"width\":1024,\"height\":1536},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.kwinanagolfclub.com.au\\\/cms\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.kwinanagolfclub.com.au\\\/cms\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Home\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.kwinanagolfclub.com.au\\\/cms\\\/#website\",\"url\":\"https:\\\/\\\/www.kwinanagolfclub.com.au\\\/cms\\\/\",\"name\":\"Kwinana Golf Club\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.kwinanagolfclub.com.au\\\/cms\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Home - Kwinana Golf Club","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.kwinanagolfclub.com.au\/cms\/","og_locale":"en_US","og_type":"article","og_title":"Home - Kwinana Golf Club","og_description":"Kwinana Golf Course is set in picturesque native woodland only 30 minutes south of Perth CBD. The course is populated with towering Marri, Tuart and Eucalyptus trees and has an... Read More","og_url":"https:\/\/www.kwinanagolfclub.com.au\/cms\/","og_site_name":"Kwinana Golf Club","article_modified_time":"2026-04-14T01:15:17+00:00","og_image":[{"width":800,"height":1200,"url":"https:\/\/www.kwinanagolfclub.com.au\/cms\/wp-content\/uploads\/2026\/03\/1100-1-800x1200.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.kwinanagolfclub.com.au\/cms\/","url":"https:\/\/www.kwinanagolfclub.com.au\/cms\/","name":"Home - Kwinana Golf Club","isPartOf":{"@id":"https:\/\/www.kwinanagolfclub.com.au\/cms\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.kwinanagolfclub.com.au\/cms\/#primaryimage"},"image":{"@id":"https:\/\/www.kwinanagolfclub.com.au\/cms\/#primaryimage"},"thumbnailUrl":"https:\/\/www.kwinanagolfclub.com.au\/cms\/wp-content\/uploads\/2026\/03\/1100-1-800x1200.png","datePublished":"2017-10-06T07:02:33+00:00","dateModified":"2026-04-14T01:15:17+00:00","breadcrumb":{"@id":"https:\/\/www.kwinanagolfclub.com.au\/cms\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.kwinanagolfclub.com.au\/cms\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.kwinanagolfclub.com.au\/cms\/#primaryimage","url":"https:\/\/www.kwinanagolfclub.com.au\/cms\/wp-content\/uploads\/2026\/03\/1100-1.png","contentUrl":"https:\/\/www.kwinanagolfclub.com.au\/cms\/wp-content\/uploads\/2026\/03\/1100-1.png","width":1024,"height":1536},{"@type":"BreadcrumbList","@id":"https:\/\/www.kwinanagolfclub.com.au\/cms\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.kwinanagolfclub.com.au\/cms\/"},{"@type":"ListItem","position":2,"name":"Home"}]},{"@type":"WebSite","@id":"https:\/\/www.kwinanagolfclub.com.au\/cms\/#website","url":"https:\/\/www.kwinanagolfclub.com.au\/cms\/","name":"Kwinana Golf Club","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.kwinanagolfclub.com.au\/cms\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/www.kwinanagolfclub.com.au\/cms\/wp-json\/wp\/v2\/pages\/30","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kwinanagolfclub.com.au\/cms\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.kwinanagolfclub.com.au\/cms\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.kwinanagolfclub.com.au\/cms\/wp-json\/wp\/v2\/users\/30"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kwinanagolfclub.com.au\/cms\/wp-json\/wp\/v2\/comments?post=30"}],"version-history":[{"count":192,"href":"https:\/\/www.kwinanagolfclub.com.au\/cms\/wp-json\/wp\/v2\/pages\/30\/revisions"}],"predecessor-version":[{"id":11532,"href":"https:\/\/www.kwinanagolfclub.com.au\/cms\/wp-json\/wp\/v2\/pages\/30\/revisions\/11532"}],"wp:attachment":[{"href":"https:\/\/www.kwinanagolfclub.com.au\/cms\/wp-json\/wp\/v2\/media?parent=30"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}