diff --git a/samples/.DS_Store b/samples/.DS_Store
index 1483b8b0..3d3bc3e9 100644
Binary files a/samples/.DS_Store and b/samples/.DS_Store differ
diff --git a/samples/3d-marker-customization/index.html b/samples/3d-marker-customization/index.html
new file mode 100644
index 00000000..46b6918b
--- /dev/null
+++ b/samples/3d-marker-customization/index.html
@@ -0,0 +1,15 @@
+
+
+
+
+
Click on a place to get details.
+
+
+
diff --git a/samples/3d-places/index.ts b/samples/3d-places/index.ts
new file mode 100644
index 00000000..94ee72d0
--- /dev/null
+++ b/samples/3d-places/index.ts
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * * https://www.apache.org/licenses/LICENSE-2.0
+ * * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+*/
+//@ts-nocheck
+// [START maps_3d_places]
+let map3DElement = null;
+async function init() {
+ const { Map3DElement } = await google.maps.importLibrary("maps3d");
+ { }
+ map3DElement = new Map3DElement({
+ center: { lat: 51.532, lng : -0.124, altitude: 30 },
+ range: 1400,
+ tilt: 64,
+ heading: -5,
+ mode: 'HYBRID'
+ });
+
+ document.body.append(map3DElement);
+
+ map3DElement.addEventListener('gmp-click', async (event) => {
+ if (event.placeId) {
+ const place = await event.fetchPlace();
+ await place.fetchFields({ fields: ['*'] });
+
+ // Display place details.
+ document.getElementById("placeName").innerHTML = "