Mandarin Beach Villa operates a camera on its own beachfront at Lipa Noi, Koh Samui. An automated observer samples that camera’s footage each hour and records what the footage visibly supports. This page documents exactly how it works, including what it cannot tell you.
This is an owner-operated automated system. It is not scientifically certified, not independently verified, and makes no claim to be better than monitoring on any other coast. These observations are not water-quality tests, official tide measurements or confirmation that swimming is safe.
Mandarin Beach Villa — Lipa Noi beachfront camera at Lipa Noi Beach, Koh Samui, Thailand. Facing west over the villa's own beachfront and the sea. The source is the villa’s own camera feed at 640x360 pixels, 15.000 frames per second. Observations cover four fixed areas of the frame: visible offshore water, the nearshore, the waterline and the exposed sand. Those areas stay the same between runs so successive observations concern the same frontage. The lower part of the frame, which shows the villa’s own ground and seating, is cropped away before any frame is analysed or published.
Lipa Noi’s beachfront varies along the coastline: beach width, the amount of exposed sand and shoreline conditions differ between locations and change with the tide, and visible litter or washed-up seaweed can vary from one stretch to another. Mandarin Beach Villa’s camera and hourly observations cover only the beachfront directly in front of the villa and the water visible within the camera’s fixed view, and each observation applies to that area at its stated time. They do not establish the beach width, cleanliness, seaweed levels or sea conditions outside another villa, even one that is also on Lipa Noi Beach; a comparison requires separate, current evidence from each property’s own beachfront.
The camera’s coordinates identify where the camera is situated. They are not an area-wide monitoring boundary. Coverage: the beachfront and water visible from Mandarin Beach Villa’s fixed camera only. Conditions at other properties are not observed.
Observations are taken hourly between 07:00–18:00 ICT. The camera cannot see after dark — a night frame carries only a small lit patch of foreground — so no observation is taken at night, and a gap between the last evening report and the first morning report is the schedule, not a fault.
Each run collects 3 clips of 20 seconds, spaced 2 minutes apart, and takes 4 frames from each clip. A report therefore summarises sampled footage from the preceding hour, not continuous coverage. Sampling settings are configurable and the settings actually used are recorded in every report.
Monitoring began on 12 September 2026. The first published observation covers 12 September 2026, 15:46 Thailand time. No observations exist for any time before the service started, and none are ever created retrospectively.
Times are stored in UTC and displayed in Thailand time (Asia/Bangkok, UTC+7).
Every monthly record carries its season, so a month is read in context. Koh Samui has three seasons, and the record uses whole calendar months for each:
The wet season is the retreating north-east monsoon. Its heaviest rain falls in October and November, November being Koh Samui’s wettest month; December is transitional and dries as it goes. Koh Samui sits in the Gulf of Thailand and misses the south-west monsoon that soaks Phuket and the Andaman coast, so May to September is warm and reasonably dry here. Lipa Noi faces west, on the sheltered side of the island in the north-east monsoon.
The season label describes the climatological calendar. It never describes what a month’s observations must show: the counts on each monthly page are what the camera recorded, published in full whatever the season. For visitors from Europe, our dry season falls in your winter.
The camera is not calibrated and there is no measuring scale in frame, so the observer never reports:
Numerical measurements would require calibrating the camera and validating it against appropriate reference measurements. That has not been done, so no numbers are published. Confidence percentages are not published either, because they have not been calibrated.
Where tide predictions appear alongside an observation, they come from the villa’s separate tide-data integration and are labelled with their source, station and retrieval time. They are predictions from that source, not measurements taken from the webcam, and the two are never mixed.
On the monthly record, “exposed sand when the predicted tide level was high” counts the observations taken while that separate source classified the predicted tide level as high at the time of sampling. They are not measurements of tide height and not necessarily observations at the exact tidal peak, and a count of qualifying observations is a count of observations, not of separate high tides.
Before anything is analysed, the sampled frames are checked for successful capture, frozen or repeated footage, usable resolution, darkness, glare and obstruction. The camera is fixed in position; a structural comparison against a stored reference view is recorded with every observation as a diagnostic, but it is not used to judge the footage, because measured on real frames a beach an hour later differs as much as a moved camera would. Calm water is not treated as a frozen feed: footage is only called frozen when frames are identical or their difference sits below a measured noise floor across every sample pair.
When footage is unusable the observer publishes a dated status explaining why, rather than inventing conditions. An earlier report is never carried forward as current, and the last successful report stays available with its original timestamp.
Sampled frames are sent to a vision model, which must answer through a fixed structured form. Its answer is treated as untrusted until it passes validation: required fields must be present, any field the footage does not support must be marked not assessable, and any output containing a measurement, a tide claim, a cleanliness or water-quality claim, a safety claim or a reference to individuals is rejected outright rather than edited. The public summary is assembled only from fields that passed validation, so it cannot add anything the observation did not record.
"“Validated” means a report passed the system’s own publication checks; it does not mean an automated classification has been independently certified. The counts and percentages summarise validated automated visual observations within the stated reporting period. The visual classifications involve model interpretation. Missing observations are not filled in, and the results are not extrapolated to unobserved times or locations.
Villa staff review observations against the footage. A staff correction is published in place of the automated text, is marked as corrected, and the original automated output is retained internally. The system is not trained on its own unverified reports, and the model and method versions are recorded on every report.
Public publication is currently enabled. Unattended publication is only switched on after staff have compared sample reports with the footage.
Every report has a permanent observation ID and keeps representative supporting images. A SHA-1 hash of each source frame is recorded to help detect later changes to the stored files; a hash is not independent proof of when footage was captured. Representative supporting images are retained alongside their observation records for as long as those records remain public. If a supporting image becomes unavailable, the record identifies that limitation. An unavailable image is never recreated, replaced by another hour’s image or presented as if it could still be inspected. Daily time-lapse clips are a derived convenience and are kept for 30 days; the analysed frames beyond the published representative images and the source video clips are not archived publicly. Rough conditions and unavailable periods are kept exactly as recorded. Published images are cropped to the observed frontage, and the system does not identify individuals or analyse guest behaviour.