Your LEGO Workbench is a personal blog allowing you to showcase LEGO MOC creations you are currently designing,
or building, or other miscellaneous LEGO-related activities you are engaged in. These posts are public and
viewable by everyone.
The Spaceman Key Light UPSCALE Project, reimagines Classic Space in an enlarged scale.
We've got minifigure scale vehicles and spaceships. LEGO has introduced "space babies" or "micro astronauts" (small scale, e.g. set 40712). There's been giant upscaled brick built figures (e.g. set 40649). Now let's explore somewhere in between small and giant figures...
This My Own Creation (MOC) is part of my UPSCALE Project that is designed for the LEGO Spaceman Key Light figure - a large key ring figure with LED lights. The designs are based on vintage Classic Space sets.
LEGO specifications: “Inspire dreams of space adventures with the LEGO® Spaceman Key Light. A fun everyday gift for ages 6 and up, it features a large version of a spaceman minifigure with a posable head, arms and legs and 2 bright LED lights in the feet – simply press the button on the chest to turn the lights on”. The LEGO Spaceman Key Light features a keychain attached to the head. Please note: this can be removed, but proceed carefully and at your own risk.
Standing at approximately 7cm tall, the Key Light figure is nearly double the size of a standard 4cm Space Minifigure. To create a matching environment for this Upscale project, we effectively treat the scale as 2:1, doubling the size of standard bricks and plates.
However, this change in scale presents two specific building challenges.
Seating: The Key Light figure lacks stud holes (anti-studs) on the back of the legs. As there is no way to click the figure into vehicles, we used creative building techniques to construct an inset for the figure to sit.
Complex Parts: Scaling requires more than just stacking basic bricks. Replicating complex specialty LEGO pieces at double the size requires unique solutions to bring them to life.
In this UPSCALE series, you will find:
Droid (SP081) and Accessories (Space Metal Detector and Space Camera)
Space Buggy 886 and XT5 with Droid 6809
Space Patrol 6803
HAPPY SPACE TRAVELS!
141 views 0 comments like 1 month ago
to your account to add or reply to comments.
Error - You are not logged in!
Sorry you must be logged in before you can do that.
Error - Pro Plan required
Sorry you need to upgrade to the Pro Plan before you can use this feature.
Are you sure?
Oops, something has gone wrong
Please see the Bugs Forum
for help with the issue below, or create a new topic for it if not found. Or you can try refreshing this page.
default
22.84 ms (24 queries
including 7 similar
and 7 duplicates
)
Query
Timeline
Time (ms)
Action
SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" WHERE "auth_user"."username" = 'watson.lego' LIMIT 21SELECT ••• FROM "auth_user" WHERE "auth_user"."username" = 'watson.lego' LIMIT 21
8.80
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./accounts/views/profile.py in user_workbench_post(2066)
user = get_object_or_404(User.objects, username=username)
SELECT "accounts_userpost"."id", "accounts_userpost"."user_id", "accounts_userpost"."timestamp", "accounts_userpost"."text", "accounts_userpost"."search_vector", "accounts_userpost"."is_active", "accounts_userpost"."is_locked" FROM "accounts_userpost" WHERE ("accounts_userpost"."id" = 38572 AND "accounts_userpost"."user_id" = 627793) LIMIT 21SELECT ••• FROM "accounts_userpost" WHERE ("accounts_userpost"."id" = 38572 AND "accounts_userpost"."user_id" = 627793) LIMIT 21
0.50
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./accounts/views/profile.py in user_workbench_post(2067)
post = get_object_or_404(UserPost.all_objects, id=user_post_id, user=user)
SELECT "accounts_userpoststatstotal"."post_id", "accounts_userpoststatstotal"."views" FROM "accounts_userpoststatstotal" WHERE "accounts_userpoststatstotal"."post_id" = 38572 LIMIT 21SELECT ••• FROM "accounts_userpoststatstotal" WHERE "accounts_userpoststatstotal"."post_id" = 38572 LIMIT 21
2 similar queries.
Duplicated 2 times.
0.18
Connection: default
Transaction status: In transaction
/home/nathan/rb/site/./accounts/views/profile.py in user_workbench_post(2075)
UserPostStatsTotal.inc_views(post)/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(350)
self, created = cls.objects.get_or_create(post=post)
UPDATE "accounts_userpoststatstotal" SET "views" = 141 WHERE "accounts_userpoststatstotal"."post_id" = 38572UPDATE "accounts_userpoststatstotal" SET "views" = 141 WHERE "accounts_userpoststatstotal"."post_id" = 38572
0.13
Connection: default
Transaction status: In transaction
/home/nathan/rb/site/./accounts/views/profile.py in user_workbench_post(2075)
UserPostStatsTotal.inc_views(post)/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(352)
self.save()
/home/nathan/rb/site/./accounts/views/profile.py in user_workbench_post(2075)
UserPostStatsTotal.inc_views(post)/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(353)
UserPostStatsHistory.inc_views(post)/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(374)
with transaction.atomic():
SELECT "accounts_userpoststatshistory"."id", "accounts_userpoststatshistory"."post_id", "accounts_userpoststatshistory"."day", "accounts_userpoststatshistory"."views" FROM "accounts_userpoststatshistory" WHERE ("accounts_userpoststatshistory"."day" = '2026-01-22'::date AND "accounts_userpoststatshistory"."post_id" = 38572) LIMIT 21SELECT ••• FROM "accounts_userpoststatshistory" WHERE ("accounts_userpoststatshistory"."day" = '2026-01-22'::date AND "accounts_userpoststatshistory"."post_id" = 38572) LIMIT 21
0.17
Connection: default
Transaction status: In transaction
/home/nathan/rb/site/./accounts/views/profile.py in user_workbench_post(2075)
UserPostStatsTotal.inc_views(post)/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(353)
UserPostStatsHistory.inc_views(post)/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(375)
self, created = cls.objects.get_or_create(post=post, day=timezone.now())
UPDATE "accounts_userpoststatshistory" SET "post_id" = 38572, "day" = '2026-01-22'::date, "views" = 2 WHERE "accounts_userpoststatshistory"."id" = 1602262UPDATE "accounts_userpoststatshistory" SET "post_id" = 38572, "day" = '2026-01-22'::date, "views" = 2 WHERE "accounts_userpoststatshistory"."id" = 1602262
0.11
Connection: default
Transaction status: In transaction
/home/nathan/rb/site/./accounts/views/profile.py in user_workbench_post(2075)
UserPostStatsTotal.inc_views(post)/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(353)
UserPostStatsHistory.inc_views(post)/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(377)
self.save()
/home/nathan/rb/site/./accounts/views/profile.py in user_workbench_post(2075)
UserPostStatsTotal.inc_views(post)/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(353)
UserPostStatsHistory.inc_views(post)/home/nathan/rb/site/./accounts/models/user_posts.py in inc_views(374)
with transaction.atomic():
SELECT "countries_plus_country"."iso", "countries_plus_country"."iso3", "countries_plus_country"."iso_numeric", "countries_plus_country"."fips", "countries_plus_country"."name", "countries_plus_country"."capital", "countries_plus_country"."area", "countries_plus_country"."population", "countries_plus_country"."continent", "countries_plus_country"."tld", "countries_plus_country"."currency_code", "countries_plus_country"."currency_symbol", "countries_plus_country"."currency_name", "countries_plus_country"."phone", "countries_plus_country"."postal_code_format", "countries_plus_country"."postal_code_regex", "countries_plus_country"."languages", "countries_plus_country"."geonameid", "countries_plus_country"."neighbours", "countries_plus_country"."equivalent_fips_code" FROM "countries_plus_country" WHERE "countries_plus_country"."iso" = 'US' LIMIT 21SELECT ••• FROM "countries_plus_country" WHERE "countries_plus_country"."iso" = 'US' LIMIT 21
0.25
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./accounts/views/profile.py in user_workbench_post(2083)
return render(request, 'accounts/user_workbench.html', context)/home/nathan/rb/site/./rb/templatetags/rb_geo.py in geo_currency(20)
geo_data = user.geo.get_user_currency()/home/nathan/rb/site/./geo/geo.py in get_user_currency(252)
country = Country.objects.get(iso=country_code)
412
</a>
413
</li>
414
<li class="hidden-xs">
415
{% geo_currency request.user %}
416
</li>
417
{% comment %}
418
<li class="hidden-xs hidden-sm">
419
<a href={% if request.user.is_authenticated %}"{% url 'user_profile_settings' request.user.get_username %}#personalisation"{% else %}"#" onclick="return false;"{% endif %} title="All date/times are being converted to this timezone">{% get_user_timezone request.user %}</a>
SELECT "avatar_avatar"."id", "avatar_avatar"."user_id", "avatar_avatar"."primary", "avatar_avatar"."avatar", "avatar_avatar"."date_uploaded" FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 627793 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 627793 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
3 similar queries.
Duplicated 3 times.
0.31
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./accounts/views/profile.py in user_workbench_post(2083)
return render(request, 'accounts/user_workbench.html', context)/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
avatar_url = provider.get_avatar_url(user, size)/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
avatar = get_primary_avatar(user, size)/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(120)
avatar = user.avatar_set.order_by("-primary", "-date_uploaded")[0]
SELECT "avatar_avatar"."id", "avatar_avatar"."user_id", "avatar_avatar"."primary", "avatar_avatar"."avatar", "avatar_avatar"."date_uploaded" FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 627793 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 627793 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
3 similar queries.
Duplicated 3 times.
0.20
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./accounts/views/profile.py in user_workbench_post(2083)
return render(request, 'accounts/user_workbench.html', context)/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
avatar_url = provider.get_avatar_url(user, size)/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
avatar = get_primary_avatar(user, size)/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(120)
avatar = user.avatar_set.order_by("-primary", "-date_uploaded")[0]
10
{% with profile_user.get_privacy_options as privacy_options %}
SELECT COUNT(*) AS "__count" FROM "accounts_usertrophy" WHERE "accounts_usertrophy"."user_id" = 627793SELECT ••• FROM "accounts_usertrophy" WHERE "accounts_usertrophy"."user_id" = 627793
0.14
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./accounts/views/profile.py in user_workbench_post(2083)
return render(request, 'accounts/user_workbench.html', context)
SELECT "avatar_avatar"."id", "avatar_avatar"."user_id", "avatar_avatar"."primary", "avatar_avatar"."avatar", "avatar_avatar"."date_uploaded" FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 627793 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESC LIMIT 1SELECT ••• FROM "avatar_avatar" WHERE "avatar_avatar"."user_id" = 627793 ORDER BY "avatar_avatar"."primary" DESC, "avatar_avatar"."date_uploaded" DESCLIMIT 1
3 similar queries.
Duplicated 3 times.
0.11
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./accounts/views/profile.py in user_workbench_post(2083)
return render(request, 'accounts/user_workbench.html', context)/home/nathan/rb/site/./avatar/templatetags/avatar_tags.py in avatar_url(33)
avatar_url = provider.get_avatar_url(user, size)/home/nathan/rb/site/./avatar/providers.py in get_avatar_url(48)
avatar = get_primary_avatar(user, size)/home/nathan/rb/site/./avatar/utils.py in get_primary_avatar(120)
avatar = user.avatar_set.order_by("-primary", "-date_uploaded")[0]
SELECT COUNT(*) AS "__count" FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") WHERE ("django_comments"."content_type_id" = 226 AND "django_comments"."object_pk" = '38572' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "django_comments"."is_removed")SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") WHERE ("django_comments"."content_type_id" = 226 AND "django_comments"."object_pk" = '38572' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "django_comments"."is_removed")
2 similar queries.
Duplicated 2 times.
0.32
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./accounts/views/profile.py in user_workbench_post(2083)
return render(request, 'accounts/user_workbench.html', context)/home/nathan/venv_rb310/lib/python3.10/site-packages/django_comments/templatetags/comments.py in render(72)
context[self.as_varname] = self.get_context_value_from_queryset(context, qs)/home/nathan/venv_rb310/lib/python3.10/site-packages/threadedcomments/templatetags/threadedcomments_tags.py in get_context_value_from_queryset(116)
return qs.count()
SELECT "accounts_userpoststatstotal"."post_id", "accounts_userpoststatstotal"."views" FROM "accounts_userpoststatstotal" WHERE "accounts_userpoststatstotal"."post_id" = 38572 LIMIT 21SELECT ••• FROM "accounts_userpoststatstotal" WHERE "accounts_userpoststatstotal"."post_id" = 38572 LIMIT 21
2 similar queries.
Duplicated 2 times.
0.08
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./accounts/views/profile.py in user_workbench_post(2083)
return render(request, 'accounts/user_workbench.html', context)
SELECT "django_content_type"."id", "django_content_type"."app_label", "django_content_type"."model" FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'accounts' AND "django_content_type"."model" = 'userpost') LIMIT 21SELECT ••• FROM "django_content_type" WHERE ("django_content_type"."app_label" = 'accounts' AND "django_content_type"."model" = 'userpost') LIMIT 21
0.11
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./accounts/views/profile.py in user_workbench_post(2083)
return render(request, 'accounts/user_workbench.html', context)/home/nathan/rb/site/./rb_comments/templatetags/rb_comments_filters.py in get_page_locked_status(78)
content_type = ContentType.objects.get(app_label=page_content_type.split('.')[0], model=page_content_type.split('.')[1])
4
{% load rb_comments_filters %}
5
6
<div id="comments-{{ page.id }}">
7
{% get_page_locked_status content_type page.id as is_page_locked %}
8
9
{% comment %}
10
Not using render_comment_list as it uses styles in ul/li that I can't seem to get working well with Smarty.
11
Using fluent-comments to hide unused fields and do ajax add/reply comment.
SELECT 1 AS "a" FROM "rb_comments_pagelocked" WHERE ("rb_comments_pagelocked"."content_type_id" = 226 AND "rb_comments_pagelocked"."object_id" = 38572) LIMIT 1SELECT ••• FROM "rb_comments_pagelocked" WHERE ("rb_comments_pagelocked"."content_type_id" = 226 AND "rb_comments_pagelocked"."object_id" = 38572) LIMIT 1
0.09
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./accounts/views/profile.py in user_workbench_post(2083)
return render(request, 'accounts/user_workbench.html', context)/home/nathan/rb/site/./rb_comments/templatetags/rb_comments_filters.py in get_page_locked_status(79)
is_locked = PageLocked.objects.filter(content_type=content_type, object_id=page_id).exists()
4
{% load rb_comments_filters %}
5
6
<div id="comments-{{ page.id }}">
7
{% get_page_locked_status content_type page.id as is_page_locked %}
8
9
{% comment %}
10
Not using render_comment_list as it uses styles in ul/li that I can't seem to get working well with Smarty.
11
Using fluent-comments to hide unused fields and do ajax add/reply comment.
SELECT COUNT(*) AS "__count" FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") WHERE ("django_comments"."content_type_id" = 226 AND "django_comments"."object_pk" = '38572' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "django_comments"."is_removed")SELECT ••• FROM "threadedcomments_comment" INNER JOIN "django_comments" ON ("threadedcomments_comment"."comment_ptr_id" = "django_comments"."id") WHERE ("django_comments"."content_type_id" = 226 AND "django_comments"."object_pk" = '38572' AND "django_comments"."site_id" = 1 AND "django_comments"."is_public" ANDNOT "django_comments"."is_removed")
2 similar queries.
Duplicated 2 times.
0.20
Connection: default
Transaction status: Idle
/home/nathan/rb/site/./accounts/views/profile.py in user_workbench_post(2083)
return render(request, 'accounts/user_workbench.html', context)/home/nathan/venv_rb310/lib/python3.10/site-packages/django_comments/templatetags/comments.py in render(72)
context[self.as_varname] = self.get_context_value_from_queryset(context, qs)/home/nathan/venv_rb310/lib/python3.10/site-packages/threadedcomments/templatetags/threadedcomments_tags.py in get_context_value_from_queryset(116)
return qs.count()
15
{% if not comment_list %}
16
{# Get comments for a page #}
17
{% get_rb_comment_list for page as comment_list %}