ASSETGENIUS ロゴ

ASSETGENIUS フォトスタジオ

私たちについて

背景紙:

スタジオの歩み

ASSETGENIUS は2016年、東京・清澄で小さなデイライトスタジオとして生まれました。最小の機材で最大の光を引き出すこと、そして被写体の個性を濁さないこと。それが創業当時からの流儀です。

2020年代、私たちは機材のモジュール化とカラーマネジメントの再設計に取り組み、ロケーションとスタジオの境界を越える軽快な撮影体制を確立しました。結果として、ポートレートからプロダクト、建築まで、同じ思想で一貫した品質を届けています。

  • 2016年:清澄スタジオ開設
  • 2019年:ポストプロダクション内製化
  • 2023年:ライティング・プリセット共有基盤完成
白いサイクロと柔らかい自然光のスタジオ

設計思想:余白と光、そして静けさ。

ミッション

光を再発見し、被写体の価値を最大化する。私たちは「軽やかで正確な写真体験」を提供し、撮影をもっと優しく、もっと速く、もっと気持ちよくします。

  • シンプル:機材と導線を最小に、集中を最大に
  • 透明性:色、露出、納期の指標を共有
  • 持続性:軽量移動と再利用可能な設計

強み

  • 一貫色管理:撮影から現像、デリバリーまで ICC ベースで統合
  • モジュラー・ライティング:現場に合わせて数分で再構成
  • 静かな現場運用:打ち合わせから撤収まで、ノイズレスの体験
モジュール式ライティングキットのフラットレイ

チーム

リードフォトグラファー 佐藤

佐藤 レナ

リードフォトグラファー

カラーサイエンティスト 高橋

高橋 ソウタ

カラーサイエンティスト

プロデューサー 中村

中村 ユイ

プロデューサー

創業からの時間

2016年4月15日からの経過をライブで表示します。

0

0

0

スタジオ見学リクエスト

下記フィールドを編集して、送信ボタンを押してください。(プレーンテキスト送信のデモ)

お名前

メール

電話番号

メッセージ

スタジオの空気

紙のテクスチャと柔らかい陰影 壁に落ちる窓光のグラデーション 整然と並ぶカメラとレンズ
const activeIndex = cards.findIndex(li=>li.getAttribute('data-active')==='true'); let targetIndex = activeIndex === -1 ? 0 : Math.min(cards.length-1, Math.max(0, activeIndex + dir)); const target = cards[targetIndex]; scroller.scrollTo({left: target.offsetLeft - 16, behavior: 'smooth'}); } scroller.addEventListener('scroll', ()=>{ updateProgress(); updateActive(); }); ['pointerdown','touchstart','mousedown'].forEach(ev=>{ scroller.addEventListener(ev, (e)=>{ isDown = true; startX = (e.touches?e.touches[0].pageX:e.pageX) - scroller.offsetLeft; scrollLeft = scroller.scrollLeft; }, {passive:true}); }); ['pointerleave','pointerup','mouseup','touchend'].forEach(ev=>{ scroller.addEventListener(ev, ()=>{ isDown=false; }); }); scroller.addEventListener('pointermove', (e)=>{ if(!isDown) return; e.preventDefault(); const x = e.pageX - scroller.offsetLeft; const walk = (x - startX) * 1.1; scroller.scrollLeft = scrollLeft - walk; }); scroller.addEventListener('keydown', (e)=>{ if(e.key==='ArrowRight'){ scrollToCard(1); } if(e.key==='ArrowLeft'){ scrollToCard(-1); } }); prevBtn?.addEventListener('click', ()=>scrollToCard(-1)); nextBtn?.addEventListener('click', ()=>scrollToCard(1)); // Filters document.querySelector('.filter-all')?.addEventListener('click', ()=>{ $$('#timeline-scroll li').forEach(li=>li.classList.remove('hidden')); }); document.querySelector('.filter-recent')?.addEventListener('click', ()=>{ $$('#timeline-scroll li').forEach(li=>{ const y = Number(li.getAttribute('data-year')||'0'); if(y<2019){ li.classList.add('hidden'); } else { li.classList.remove('hidden'); } }); }); // Initialize updateProgress(); updateActive(); window.addEventListener('resize', ()=>{ updateProgress(); updateActive(); }); })(); // Modal tour interactions (function(){ const modal = $('#modal-tour'); const openBtn = $('#btn-open-tour'); const closeBtnsSel = '[data-close="#modal-tour"]'; const mainImg = $('#tour-main'); const caption = $('#tour-caption'); const counter = $('#tour-counter'); const thumbs = $$('.tour-thumb'); const prev = $('#tour-prev'); const next = $('#tour-next'); const autoplayBtn = $('#tour-autoplay'); let idx = 0; let autoplay = false; let timer = null; const slides = thumbs.map(btn=>({ src: btn.getAttribute('data-src'), alt: btn.getAttribute('data-alt') || '', cap: btn.getAttribute('data-cap') || '' })); function setIndex(i){ idx = (i+slides.length)%slides.length; const s = slides[idx]; mainImg.src = s.src; mainImg.alt = s.alt; caption.textContent = s.cap; counter.textContent = (idx+1)+' / '+slides.length; thumbs.forEach((t,i)=>t.setAttribute('data-active', i===idx ? 'true':'false')); } function open(){ modal.classList.remove('hidden'); modal.classList.add('flex'); setIndex(idx); trapFocus(modal); document.body.style.overflow = 'hidden'; startAutoplayIfEnabled(); } function close(){ modal.classList.add('hidden'); modal.classList.remove('flex'); document.body.style.overflow = ''; stopAutoplay(); releaseFocusTrap(); } function startAutoplayIfEnabled(){ if(!autoplay) return; stopAutoplay(); timer = setInterval(()=>{ setIndex(idx+1); }, 3500); autoplayBtn.classList.add('bg-gray-900','text-white','dark:bg-white','dark:text-gray-900'); } function stopAutoplay(){ if(timer){ clearInterval(timer); timer=null; } autoplayBtn.classList.remove('bg-gray-900','text-white','dark:bg-white','dark:text-gray-900'); } openBtn?.addEventListener('click', open); document.body.addEventListener('click',(e)=>{ const closeSel = e.target.getAttribute('data-close'); if(closeSel==='#modal-tour'){ close(); } }); prev?.addEventListener('click', ()=>{ setIndex(idx-1); startAutoplayIfEnabled(); }); next?.addEventListener('click', ()=>{ setIndex(idx+1); startAutoplayIfEnabled(); }); thumbs.forEach((t,i)=> t.addEventListener('click', ()=>{ setIndex(i); startAutoplayIfEnabled(); })); autoplayBtn?.addEventListener('click', ()=>{ autoplay = !autoplay; if(autoplay){ startAutoplayIfEnabled(); } else { stopAutoplay(); } }); window.addEventListener('keydown', (e)=>{ if(modal.classList.contains('hidden')) return; if(e.key==='Escape') close(); if(e.key==='ArrowRight') { setIndex(idx+1); startAutoplayIfEnabled(); } if(e.key==='ArrowLeft') { setIndex(idx-1); startAutoplayIfEnabled(); } }); // swipe on main image let startX=0, swiping=false; mainImg?.addEventListener('touchstart', (e)=>{ swiping=true; startX=e.touches[0].clientX; }, {passive:true}); mainImg?.addEventListener('touchend', (e)=>{ if(!swiping) return; swiping=false; const endX = (e.changedTouches && e.changedTouches[0]?.clientX) || startX; const dx = endX - startX; if(Math.abs(dx)>40){ if(dx<0){ setIndex(idx+1); } else { setIndex(idx-1); } startAutoplayIfEnabled(); } }); // init first setIndex(0); })(); // Contact form validation with fake submit (function(){ const form = $('#contact-mini'); if(!form) return; const status = $('#c-status'); function showError(input, msg){ const hint = input.parentElement.querySelector('p.text-xs'); if(hint){ hint.textContent = msg; hint.classList.remove('hidden'); } input.classList.add('ring-2','ring-red-500'); } function clearError(input){ const hint = input.parentElement.querySelector('p.text-xs'); if(hint){ hint.classList.add('hidden'); } input.classList.remove('ring-2','ring-red-500'); } function validate(){ let ok = true; const name = $('#c-name'); const email = $('#c-email'); const phone = $('#c-phone'); const msg = $('#c-msg'); const consent = $('#c-consent'); if(!name.value || name.value.trim().length<2){ showError(name,'Veuillez entrer au moins 2 caractères.'); ok=false; } else { clearError(name); } const re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; if(!re.test(email.value)){ showError(email,'Adresse email invalide.'); ok=false; } else { clearError(email); } const pr = /^(\+?\d[\d\s\-]{7,}\d)$/; if(!pr.test(phone.value)){ showError(phone,'Numéro invalide.'); ok=false; } else { clearError(phone); } if(!msg.value || msg.value.trim().length<10){ showError(msg,'Veuillez détailler votre message (10+ caractères).'); ok=false; } else { clearError(msg); } if(!consent.checked){ ok=false; consent.focus(); } return ok; } form.addEventListener('submit', async (e)=>{ e.preventDefault(); if(!validate()){ status.className='mt-3 text-sm rounded-lg px-4 py-3 bg-red-50 dark:bg-red-900/30 text-red-700 dark:text-red-300'; status.textContent = 'Veuillez corriger les champs indiqués.'; status.classList.remove('hidden'); return; } status.className='mt-3 text-sm rounded-lg px-4 py-3 bg-blue-50 dark:bg-blue-900/30 text-blue-800 dark:text-blue-200'; status.textContent='Envoi en cours...'; status.classList.remove('hidden'); await new Promise(r=>setTimeout(r, 900)); status.className='mt-3 text-sm rounded-lg px-4 py-3 bg-green-50 dark:bg-green-900/30 text-green-800 dark:text-green-200'; status.textContent='Merci ! Votre message a bien été envoyé.'; form.reset(); }); ['input','change','keyup'].forEach(ev=> form.addEventListener(ev, (e)=>{ const t = e.target; if(t && (t.id==='c-name'||t.id==='c-email'||t.id==='c-phone'||t.id==='c-msg')){ if(t.value) clearError(t); } })); })(); // Cookie banner logic (function(){ const banner = $('#cookie-banner'); const btnAccept = $('#cookie-accept'); const btnDecline = $('#cookie-decline'); const btnSettings = $('#cookie-settings'); const btnManage = $('#btn-cookies'); const modal = $('#cookie-modal'); const form = $('#cookie-form'); const save = $('#cookie-save'); const consentKey = 'sl_cookie_consent_v1'; function openModal(){ modal.classList.remove('hidden'); modal.classList.add('flex'); trapFocus(modal); } function closeModal(){ modal.classList.add('hidden'); modal.classList.remove('flex'); releaseFocusTrap(); } function showBannerIfNeeded(){ const c = localStorage.getItem(consentKey); if(!c){ banner.classList.remove('hidden'); } } function setConsent(val){ localStorage.setItem(consentKey, JSON.stringify(val)); banner.classList.add('hidden'); } btnAccept?.addEventListener('click', ()=> setConsent({ essential:true, analytics:true, marketing:true })); btnDecline?.addEventListener('click', ()=> setConsent({ essential:true, analytics:false, marketing:false })); btnSettings?.addEventListener('click', openModal); form?.addEventListener('submit', (e)=>{ e.preventDefault(); const val = {essential:true, analytics: $('#c-analytics').checked, marketing: $('#c-marketing').checked}; setConsent(val); closeModal(); }); document.body.addEventListener('click',(e)=>{ const closeSel = e.target.getAttribute('data-close'); if(closeSel==='#cookie-modal'){ closeModal(); } }); btnManage?.addEventListener('click', ()=>{ const c = localStorage.getItem(consentKey); if(!c){ banner.classList.remove('hidden'); } else { openModal(); } }); showBannerIfNeeded(); })(); // Theme toggle (function(){ const btn = $('#btn-theme'); btn?.addEventListener('click', ()=>{ const isDark = document.documentElement.classList.toggle('dark'); localStorage.setItem('theme', isDark ? 'dark' : 'light'); }); })(); // Focus trap helpers for modals let lastFocused = null; function trapFocus(container){ lastFocused = document.activeElement; const sel = 'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex="0"]'; const focusables = Array.from(container.querySelectorAll(sel)); if(focusables.length){ focusables[0].focus(); } function handler(e){ if(e.key !== 'Tab') return; const first = focusables[0]; const last = focusables[focusables.length - 1]; if(e.shiftKey){ if(document.activeElement === first){ e.preventDefault(); last.focus(); } } else { if(document.activeElement === last){ e.preventDefault(); first.focus(); } } } container._trapHandler = handler; container.addEventListener('keydown', handler); } function releaseFocusTrap(){ const containers = ['#modal-tour','#cookie-modal'].map(id=>document.querySelector(id)).filter(Boolean); containers.forEach(c=>{ if(c && c._trapHandler){ c.removeEventListener('keydown', c._trapHandler); c._trapHandler=null; } }); if(lastFocused && typeof lastFocused.focus === 'function'){ lastFocused.focus(); } } // Utility: hide cookie banner on scroll after accept/decline via keyboard document.addEventListener('keydown', (e)=>{ if(e.key==='Escape'){ ['#modal-tour','#cookie-modal'].forEach(sel=>{ const m = document.querySelector(sel); if(m && !m.classList.contains('hidden')){ const closeBtn = m.querySelector('[data-close="'+sel+'"]'); if(closeBtn){ closeBtn.click(); } } }); } });