Prehistoric Seafaring Coiba

No preview image

This model is seeking new collaborators — would you please help?

1 collaborator

Costarica Diana Carvajal (Author)

Tags

archaeology 

"Seafaring"

Tagged by Diana Carvajal about 3 hours ago

Visible to everyone | Changeable by everyone
Model was written in NetLogo 7.0.2 • Viewed 13 times • Downloaded 0 times • Run 0 times
Download the 'Prehistoric Seafaring Coiba' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


WHAT IS IT?

Explore how simple boats and decision rules could enable travel between islands under variable winds, currents, and visibility.

HOW IT WORKS

Boats: Carry paddlers, have speed, heading, fatigue, and risk of capsizing. Islands: Targets and waypoints with elevation used to determine visibility range.

HOW TO USE IT

Wind and current vectors: Spatially varying fields updated stochastically each tick. Sea state: Derived from wind speed; affects capsize risk and effective speed.

THINGS TO NOTICE

Movement: Effective velocity = paddling + drift. v ⃗

boat

v ⃗ paddle + v ⃗ current + α ⋅ v ⃗ wind Wayfinding: Sightline hopping if islands are within visibility; otherwise dead-reckoning, downwind drift, or tacking. Fatigue: Reduces paddling speed over time; rest on land. Risk: Capsize probability grows with wind and wave exposure.

THINGS TO TRY

(suggested things for the user to try to do (move sliders, switches, etc.) with the model)

EXTENDING THE MODEL

(suggested things to add or change in the Code tab to make the model more complicated, detailed, accurate, etc.)

NETLOGO FEATURES

(interesting or unusual features of NetLogo that the model uses, particularly in the Code tab; or where workarounds were needed for missing features)

RELATED MODELS

(models in the NetLogo Models Library and elsewhere which are of related interest)

CREDITS AND REFERENCES

(a reference to the model's URL on the web if it has one, as well as any other necessary credits, citations, and links)

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

; Prehistoric Seafaring in Coiba Archipelago
; Author: Copilot + Diana Carvajal
; NetLogo 6.x

breed [boats boat]
breed [islands island]

boats-own [
  speed-base
  speed-eff
  heading
  fatigue
  endurance-hours
  hours-paddled
  alive?
  route-target
  strategy
  reached-target?
]

islands-own [
  elev
  name
]

globals [
  km-per-patch
  hours-per-tick
  visibility-km
  wind-heading
  current-heading
  success-count
  failure-count
]

to setup
  clear-all
  set km-per-patch 2        ; 1 patch = 2 km
  set hours-per-tick 0.5    ; each tick = 30 minutes
  set visibility-km 30
  set wind-heading 225      ; NE trade winds (blowing SW)
  set current-heading 240   ; Panama Bight current
  set success-count 0
  set failure-count 0
  setup-islands
  setup-boats
  reset-ticks
end 

to setup-islands
  ; Approximate positions (replace with GIS coordinates if available)
  create-islands 1 [
    setxy 0 0
    set name "Coiba"
    set elev 416
    set color green
    set size 2
    set label name
  ]
  create-islands 1 [
    setxy 10 -5
    set name "Jicarón"
    set elev 322
    set color green
    set size 2
    set label name
  ]
  create-islands 1 [
    setxy 12 -8
    set name "Jicarita"
    set elev 180
    set color green
    set size 2
    set label name
  ]
  ; Add more islands: Cébaco, Papagayo, Canales, Montuoso...
end 

to setup-boats
  let origin one-of islands with [name = "Coiba"]
  create-boats 20 [
    setxy [xcor] of origin [ycor] of origin
    set color white
    set speed-base kmh-to-patches-per-tick 5
    set speed-eff speed-base
    set fatigue 0
    set endurance-hours 8
    set hours-paddled 0
    set alive? true
    set route-target one-of islands with [name != "Coiba"]
    set strategy one-of ["sight-hop" "dead-reckon" "downwind" "tack"]
    set heading towards route-target
  ]
end 

to go
  if not any? boats [ stop ]
  ask boats with [alive?] [
    navigate
    move
    check-landfall
  ]
  tick
end 

to navigate
  if strategy = "sight-hop" [
    let vis-radius patches-from-km visibility-km
    let seen islands in-radius vis-radius
    if any? seen [
      set heading towards min-one-of seen [distance myself]
    ]
  ]
  if strategy = "dead-reckon" [ set heading towards route-target ]
  if strategy = "downwind" [ set heading wind-heading ]
  if strategy = "tack" [
    if ticks mod 40 < 20 [ set heading (towards route-target) + 45 ]
    if ticks mod 40 >= 20 [ set heading (towards route-target) - 45 ]
  ]
end 

to move
  set speed-eff speed-base * (1 - fatigue * 0.5)
  fd speed-eff
  set hours-paddled hours-paddled + hours-per-tick
  if hours-paddled > endurance-hours [ set fatigue fatigue + 0.05 ]
end 

to check-landfall
  let nearby one-of islands in-radius 1
  if nearby != nobody [
    if nearby = route-target [
      set reached-target? true
      set success-count success-count + 1
      set color green
      die
    ]
  ]
end 

; Utility conversions

to-report kmh-to-patches-per-tick [kmh]
  report (kmh / km-per-patch) * hours-per-tick
end 

to-report patches-from-km [km]
  report km / km-per-patch
end 

There is only one version of this model, created about 3 hours ago by Diana Carvajal.

Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.